Docker charm
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.
States
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.
Configuration
name | type | Default | Description |
---|---|---|---|
apt-key-server | string | See notes | APT Key Server |
cuda_repo | string | 10.0.130-1 | The cuda-repo package version to install. |
custom-registry-ca | string | Base64 encoded Certificate Authority (CA) bundle. Setting this config allows container runtimes to pull images from registries with TLS certificates signed by an external CA. | |
disable-juju-proxy | boolean | False | Ignore juju-http(s) proxy settings on this charm. If set to true, all juju https proxy settings will be ignored |
docker-ce-package | string | See notes | The pinned version of docker-ce package installed with nvidia-docker. |
docker-logins | string | [] | See notes |
docker-opts | string | Extra options to pass to the Docker daemon. e.g. –insecure-registry. | |
docker_runtime | string | auto | See notes |
docker_runtime_key_url | string | Custom Docker repository validation key URL. | |
docker_runtime_package | string | Custom Docker repository package name. | |
docker_runtime_repo | string | See notes | |
enable-cgroups | boolean | False | Enable GRUB cgroup overrides cgroup_enable=memory swapaccount=1. WARNING changing this option will reboot the host - use with caution on production services. |
http_proxy | 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. | |
https_proxy | 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. | |
no_proxy | string | See notes | |
nvidia-container-runtime-package | string | See notes | The pinned version of nvidia-container-runtime package. |
nvidia-docker-package | string | See notes | The pinned version of nvidia-docker2 package. |
apt-key-server
hkp://keyserver.ubuntu.com:80
docker-ce-package
docker-ce=5:18.09.1~3-0~ubuntu-bionic
docker-logins
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”}]
docker_runtime
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).
docker_runtime_repo
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}] https://download.docker.com/linux/ubuntu {CODE} stable
.
no_proxy
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.
nvidia-container-runtime-package
nvidia-container-runtime=2.0.0+docker18.09.1-1
nvidia-docker-package
nvidia-docker2=2.0.3+docker18.09.1-1
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.
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.