Camel component for communicating with Docker.
The Docker Camel component leverages the docker-java via the Docker Remote API
docker://[operation]?[options]
All URI option can be passed as Header properties. Values found in a message header take precedence over URI parameters. A header property takes the form of a URI option prefixed with CamelDocker as shown below
URI Option | Header Property |
---|---|
containerId | CamelDockerContainerId |
Options on the Docker Endpoint mapped to a DockerConfiguration POJO. This object contains the values integral to the communication with the Docker sever as first order attributes along with a Map of additional parameters based on the options for each type of interaction.
The following are the the primary options for communicating with the Docker server
Option | Header | Description | Default Value |
---|---|---|---|
host | CamelDockerHost | Docker host | localhost |
port | CamelDockerPort | Docker port | 2375 |
username | CamelDockerUserName | User name to authenticate with | |
password | CamelDockerPassword | Password to authenticate with | |
secure | CamelDockerSecure | Use HTTPS communication | false |
certPath | CamelDockerCertPath | Location containing the SSL certificate chain | |
CamelDockerEmail | Email address associated with the user | ||
requestTimeout | CamelDockerRequestTimeout | Request timeout for response (in seconds) | 30 |
serverAddress | CamelDockerServerAddress | Address of the Docker registry server (If not specified, host will be used) | https://index.docker.io/v1/ |
maxTotalConnections | CamelDockerMaxTotalConnections | Maximum number of total connections | 100 |
maxPerRouteConnections | CamelDockerMaxPerRouteConnections | Maximum number of connections per route | 100 |
Operation | Options | Description | Produces |
---|---|---|---|
events | initialRange | Amount of time in the past to begin receiving events (Long) | Event |
statistics | containerId | Statistics based on resource usage | Statistics |
The following producer operations are available
Operation | Options | Description | Returns |
---|---|---|---|
auth | Values obtained from the component general options | Validate auth configuration | AuthResponse |
info | System wide information | Info | |
ping | Ping the Docker server | ||
version | Show the docker version information | Version |
Operation | Options | Description | Body Content | Returns |
---|---|---|---|---|
image/build | noCache, quiet, remove, tag | Build an image from Dockerfile via stdin | InputStream or File | InputStream |
image/create | repository | Create an image | InputStream | CreateImageResponse |
image/inspect | imageId | Inspect an image | InspectImageResponse | |
image/list | filter, showAll | List images | List<Image> | |
image/pull | repository, registry, tag | Pull an image from the registry | InputStream | |
image/push | name, tag | Push an image on the registry | InputStream | |
image/remove | imageId, force, noPrune | Remove an image | ||
image/search | term | Search for images | List<SearchItem> | |
image/tag | imageId, repository, tag, force | Tag an image into a repository |
| Operation | Options | Description | Body Content | Returns | | ------------- | ---------------- | ------------- | ---------------- | | container/attach | containerId, followStream, logs, stdErr, stdOut, timestamps | Attach to a container | | InputStream | | container/commit | containerId, author, attachStdErr, attachStdIn, attachStdOut, cmd, disableNetwork, env, exposedPorts, hostname, memory, memorySwap, message, openStdIn, pause, portSpecs, repository, stdInOnce, tag, tty, user, volumes, workingDir | Create a new image from a container's changes | | String | | container/copyfile | containerId, resource, hostPath | Copy files or folders from a container | | InputStream | | container/create | image, attachStdErr, attachStdIn, attachStdOut, capAdd, capDrop, cmd, cpuShares, disableNetwork, dns, domanName, entrypoint, env, exposedPorts, hostConfig, hostname, memoryLimit, memorySwap, name, portSpecs, stdInOnce, stdInOpen, tty, user, volumes, volumesFrom, workingDir | Create a container | |CreateContainerResponse | | container/diff | containerId, containerIdDiff | Differences on the container filesystem | | List<ChangeLog> | | container/inspect | containerId | Inspect a container | | InspectContainerResponse | | container/kill | containerId, signal | Kill a container | | | | container/list | before, limit, showSize, showAll, since | List containers | | List<Container> | | container/log | containerId, followStream, stdErr, stdOut, tail, tailAll, timestamps | Get container logs | | InputStream | | container/pause | containerId | Pause a container | | | | container/remove | containerId, force, removeVolumes | Remove a container | | | | container/restart | containerId, timeout | Restart a container | | | container/start | containerId | Start a container | | | | container/stop | containerId, timeout | Stop a container | | | container/top | containerId, psArgs | List processes running in a container | |TopContainerResponse | | container/unpause | containerId | Unpause a container | | | | container/wait | containerId | Blocks until a container is stopped | | |
| Operation | Options | Description | Body Content | Returns | | ------------- | ---------------- | ------------- | ---------------- | | exec/create | containerId, attachStdErr, attachStdIn, attachStdOut, cmd, tty | Setup an exec instance on a running container | | ExecCreateCmdResponse | | exec/start | containerId, detach, execId, tty | Starts a previously created exec instance | |InputStream |
The following example consumes events from Docker
docker://events?host=192.168.59.103&port=2375
The following example queries Docker for system wide information
docker://info?host=192.168.59.103&port=2375