docker #44

Supports: xenial bionic
Add to new model

Description

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.

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

See config.yaml for
list of configuration options.

Note: Setting HTTP proxy values will override juju-http-proxy or juju-https-proxy 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 https://jujucharms.com/docker 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.

Configuration

apt-key-server
(string) APT Key Server
hkp://keyserver.ubuntu.com:80
cuda_repo
(string) The cuda-repo package version to install.
10.0.130-1
disable-juju-proxy
(boolean) 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) The pinned version of docker-ce package installed with nvidia-docker.
docker-ce=5:18.09.1~3-0~ubuntu-bionic
docker-logins
(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"}]
[]
docker-opts
(string) Extra options to pass to the Docker daemon. e.g. --insecure-registry.
docker_runtime
(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).
auto
docker_runtime_key_url
(string) Custom Docker repository validation key URL.
docker_runtime_package
(string) Custom Docker repository package name.
docker_runtime_repo
(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}] https://download.docker.com/linux/ubuntu {CODE} stable`.
enable-cgroups
(boolean) 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) 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
(string) The pinned version of nvidia-container-runtime package.
nvidia-container-runtime=2.0.0+docker18.09.1-1
nvidia-docker-package
(string) The pinned version of nvidia-docker2 package.
nvidia-docker2=2.0.3+docker18.09.1-1