docker #1

Supports: xenial bionic


A Juju subordinate charm that can be attached to charms that need a container runtime.

Charm for Docker

This subordinate charm deploys the Docker engine within a running Juju charm application. Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications in containers.

Docker containers wrap a piece of software in a complete file system that contains everything needed to run an application on a server.

Docker focuses on distributing applications as containers that can be quickly assembled from components that are run the same on different servers without environmental dependencies. This eliminates the friction between development, QA, and production environments.


The following states are set by this subordinate:

  • endpoint.{relation name}.available

This state is set when docker is available for use.

Using the Docker subordinate charm

The Docker subordinate charm is to be used with principal charms that need a container runtime. To use, we deploy the Docker subordinate charm and then relate it to the principal charm.

juju deploy cs:~containers/docker
juju add-relation docker [principal charm]

Scale out Usage

This charm will automatically scale out with the principal charm.


See config.yaml for list of configuration options.

Note: Setting HTTP proxy values will be overriden if juju-http-proxy or juju-https-proxy settings are set on the model.

Docker Compose

This charm also installs the 'docker-compose' python package using pip. So once the charm has finished installing you have the ability to use Docker Compose functionality such as control files, and logging.

Contact Information

This charm is available at and contains the open source operations code to deploy on all public clouds in the Juju ecosystem.

Docker links

  • The Docker homepage
  • Docker documentation for help with Docker commands.
  • Docker forums for community discussions.
  • Check the Docker issue tracker for bugs or problems with the Docker software.
  • The charm-docker is the GitHub repository that contains the reactive code to build this Charm.
  • Check the charm-docker issue-tracker for bugs or problems related to the Charm.


(string) APT Key Server
(string) The cuda-repo package version to install.
(string) The pinned version of docker-ce package installed with nvidia-docker.
(string) Docker login credentials. Setting this config allows Kubelet to pull images from registries where auth is required. The value for this config must be a JSON array of credential objects, like this: [{"server": "my.registry", "username": "myUser", "password": "myPass"}]
(string) Extra options to pass to the Docker daemon. e.g. --insecure-registry.
(string) Docker runtime to install valid values are "upstream" (Docker PPA), "nvidia" (Nvidia PPA), "apt" (Ubuntu archive), "auto" (Nvidia PPA or Ubuntu archive, based on your hardware), or "custom" (must have set `docker_runtime_repo` URL, `docker_runtime_key_url` URL and `docker_runtime_package` name).
(string) Custom Docker repository validation key URL.
(string) Custom Docker repository package name.
(string) Custom Docker repository, given in deb format. Use `{ARCH}` to determine architecture at runtime. Use `{CODE}` to set release codename. E.g. `deb [arch={ARCH}] {CODE} stable`.
(boolean) Enable GRUB cgroup overrides cgroup_enable=memory swapaccount=1. WARNING changing this option will reboot the host - use with caution on production services.
(string) URL to use for HTTP_PROXY to be used by Docker. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
(string) URL to use for HTTPS_PROXY to be used by Docker. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
(string) Comma-separated list of destinations (either domain names or IP addresses) which should be accessed directly, rather than through the proxy defined in http_proxy or https_proxy. Must be less than 2023 characters long.
(string) The pinned version of nvidia-container-runtime package.
(string) The pinned version of nvidia-docker2 package.