Docker plugin
The Deploy Docker plugin allows you to deploy Docker images to create containers and connect networks and volumes to them.
For information about requirements and the configuration items (CIs) that the Docker plugin provides, refer to the Docker Plugin Reference.
Features
- Deploy Docker images
- Create Docker containers
- Connect networks and volumes to Docker containers
- Deploying applications in the form of containers and swarm-mode services
- Using external registries
- Deploying network and volumes
- Copying files to running Docker containers
Using the plugin configuration items
The docker.Container
CI creates and starts a Docker container by retrieving a specified image from Docker Hub.
The docker.Network
CI creates a Docker network for a specified driver and connects Docker containers with networks.
The docker.Volume
CI creates a Docker volume and connects containers to specified data volumes.
The docker.Registry
CI registers a Docker registry with the Docker host.
The docker.ServicePort
CI binds the Docker container port to the host port.
The docker.ServiceSpec
CI creates a Docker service deployable.
The docker.Port
CI creates a Docker service deployable.
The docker.MountedVolume
CI configures a new Volume.
The docker.ContainerSpec
CI creates a deployable for a Docker container.
The docker.Network
CI configures a Docker network.
The docker.NetworkSpec
CI creates a deployable for a Docker network.
The docker.DeployedFolder
CI deploys a folder to the Docker host.
The docker.Service
CI is similar to the docker.SwarmServiceSpec from the Deploy Docker community plugin.
Plugin compatibility
The Deploy Docker plugin is not compatible with the Deploy Docker community plugin.
The community plugin is based on the Docker command-line interface (CLI) and uses the docker.Machine
configuration item (CI) type to connect to Docker, while this plugin uses the docker-py
library to connect to the Docker daemon through the docker.Engine
CI type. This plugin does not support the following properties of the docker.Machine
type: dynamicParameters
, provider
, swarmMaster
, and swarmPort
.
The docker.RunContainer
type in the community plugin is similar to the docker.Container
type in this plugin. However, this plugin does not support the following properties of the docker.RunContainer
type: entryPoint
, args
, volumesFrom
, variables
, extendedPrivileges
, memory
, pidNamespace
, workDirectory
, removeOnExit
, dumpLogsAfterStartup
, checkContainerIsRunning
, restartAlways
, registryHost
, and registryPort
.
The docker.Network
CI type is an incompatible type that exists in both plugins.
Other differences between the plugins are listed below:
Community supported plugin | Officially supported plugin |
---|---|
docker.Volume is present as an embedded CI | docker.Volume is present as a type |
docker.Link | links (only as a property in docker.Container ) |
docker.EnvironmentVariable | A new property of type map_string_string added to docker.Container CI |
docker.DataFolderVolume | docker.Folder |
docker.DataFileVolume | Not present |
docker.ComposedContainer | Not present |
sql.DockerMySqlClient | Not present |
sql.DockerizedExecutedSqlScripts | Not present |
docker.DeployedSwarmMachine | docker.SwarmManager |
docker.DockerMachineDictionary | Not present |
docker.DeployedDockerMachine (for provisioning of Docker machine) | Not present |
Not present | docker.Registry |
Not present | docker.Service |
Not present | docker.ServicePort |
Not present | docker.ServiceSpec |
Not present | docker.Port |
Not present | docker.MountedVolume |
Not present | docker.ContainerSpec |
Not present | docker.Network |
Not present | docker.NetworkSpec |
Not present | docker.DeployedFolder |
Differences in behavior:
-
Differences in configuring a Docker host:
In the community supported plugin, you can connect to a Docker host using an
overthere.Connection
and creating an instance ofdocker.Machine
while in the officially supported plugin, the infrastructure items of the typedocker.Engine
anddocker.SwarmManager
are available to establish a connection with the Docker host. -
Difference in configuring the Docker registry:
In the community supported plugin, you can use the Registry Host and Registry Port properties of
docker.RunContainer
to integrate the Docker registry while in the officially supported plugin, you must create the docker registry configuration in the Configuration section and then add the registry to the Docker host configuration in the Registries section. -
Docker compose is not supported in the Deploy official docker plugin while it is supported in the community plugin.