Skip to main content
Version: Deploy 23.1

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 pluginOfficially supported plugin
docker.Volume is present as an embedded CIdocker.Volume is present as a type
docker.Linklinks (only as a property in docker.Container)
docker.EnvironmentVariableA new property of type map_string_string added to docker.Container CI
docker.DataFolderVolumedocker.Folder
docker.DataFileVolumeNot present
docker.ComposedContainerNot present
sql.DockerMySqlClientNot present
sql.DockerizedExecutedSqlScriptsNot present
docker.DeployedSwarmMachinedocker.SwarmManager
docker.DockerMachineDictionaryNot present
docker.DeployedDockerMachine (for provisioning of Docker machine)Not present
Not presentdocker.Registry
Not presentdocker.Service
Not presentdocker.ServicePort
Not presentdocker.ServiceSpec
Not presentdocker.Port
Not presentdocker.MountedVolume
Not presentdocker.ContainerSpec
Not presentdocker.Network
Not presentdocker.NetworkSpec
Not presentdocker.DeployedFolder

Differences in behavior:

  1. 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 of docker.Machine while in the officially supported plugin, the infrastructure items of the type docker.Engine and docker.SwarmManager are available to establish a connection with the Docker host.

  2. 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.

  3. Docker compose is not supported in the Deploy official docker plugin while it is supported in the community plugin.