---
title: Charmhub | Deploy Containers Docker Registry using Charmhub - The Open Operator
  Collection
description: Deploy the latest version of Containers Docker Registry on any cloud.
url: https://charmhub.io/containers-docker-registry/configurations
---

# Containers Docker Registry

[Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")

* [Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")
* [Containers](https://charmhub.io/?filter=containers)
* [Storage](https://charmhub.io/?filter=storage)

Platform:

20.04

18.04

16.04

stable 240

```
juju deploy containers-docker-registry
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [apt-key-server](https://charmhub.io/containers-docker-registry/configurations#apt-key-server)
* [auth-basic-password](https://charmhub.io/containers-docker-registry/configurations#auth-basic-password)
* [auth-basic-user](https://charmhub.io/containers-docker-registry/configurations#auth-basic-user)
* [auth-token-issuer](https://charmhub.io/containers-docker-registry/configurations#auth-token-issuer)
* [auth-token-realm](https://charmhub.io/containers-docker-registry/configurations#auth-token-realm)
* [auth-token-root-certs](https://charmhub.io/containers-docker-registry/configurations#auth-token-root-certs)
* [auth-token-service](https://charmhub.io/containers-docker-registry/configurations#auth-token-service)
* [cuda\_repo](https://charmhub.io/containers-docker-registry/configurations#cuda_repo)
* [daemon-opts](https://charmhub.io/containers-docker-registry/configurations#daemon-opts)
* [docker-ce-package](https://charmhub.io/containers-docker-registry/configurations#docker-ce-package)
* [docker-opts](https://charmhub.io/containers-docker-registry/configurations#docker-opts)
* [docker\_runtime](https://charmhub.io/containers-docker-registry/configurations#docker_runtime)
* [docker\_runtime\_key\_url](https://charmhub.io/containers-docker-registry/configurations#docker_runtime_key_url)
* [docker\_runtime\_package](https://charmhub.io/containers-docker-registry/configurations#docker_runtime_package)
* [docker\_runtime\_repo](https://charmhub.io/containers-docker-registry/configurations#docker_runtime_repo)
* [enable-cgroups](https://charmhub.io/containers-docker-registry/configurations#enable-cgroups)
* [extra\_packages](https://charmhub.io/containers-docker-registry/configurations#extra_packages)
* [http-host](https://charmhub.io/containers-docker-registry/configurations#http-host)
* [http\_proxy](https://charmhub.io/containers-docker-registry/configurations#http_proxy)
* [https\_proxy](https://charmhub.io/containers-docker-registry/configurations#https_proxy)
* [install\_from\_upstream](https://charmhub.io/containers-docker-registry/configurations#install_from_upstream)
* [install\_keys](https://charmhub.io/containers-docker-registry/configurations#install_keys)
* [install\_sources](https://charmhub.io/containers-docker-registry/configurations#install_sources)
* [log-level](https://charmhub.io/containers-docker-registry/configurations#log-level)
* [nagios\_context](https://charmhub.io/containers-docker-registry/configurations#nagios_context)
* [nagios\_servicegroups](https://charmhub.io/containers-docker-registry/configurations#nagios_servicegroups)
* [no\_proxy](https://charmhub.io/containers-docker-registry/configurations#no_proxy)
* [nvidia-container-runtime-package](https://charmhub.io/containers-docker-registry/configurations#nvidia-container-runtime-package)
* [nvidia-docker-package](https://charmhub.io/containers-docker-registry/configurations#nvidia-docker-package)
* [package\_status](https://charmhub.io/containers-docker-registry/configurations#package_status)
* [registry-image](https://charmhub.io/containers-docker-registry/configurations#registry-image)
* [registry-name](https://charmhub.io/containers-docker-registry/configurations#registry-name)
* [registry-port](https://charmhub.io/containers-docker-registry/configurations#registry-port)
* [storage-delete](https://charmhub.io/containers-docker-registry/configurations#storage-delete)
* [storage-read-only](https://charmhub.io/containers-docker-registry/configurations#storage-read-only)
* [storage-swift-authurl](https://charmhub.io/containers-docker-registry/configurations#storage-swift-authurl)
* [storage-swift-container](https://charmhub.io/containers-docker-registry/configurations#storage-swift-container)
* [storage-swift-domain](https://charmhub.io/containers-docker-registry/configurations#storage-swift-domain)
* [storage-swift-password](https://charmhub.io/containers-docker-registry/configurations#storage-swift-password)
* [storage-swift-region](https://charmhub.io/containers-docker-registry/configurations#storage-swift-region)
* [storage-swift-tenant](https://charmhub.io/containers-docker-registry/configurations#storage-swift-tenant)
* [storage-swift-username](https://charmhub.io/containers-docker-registry/configurations#storage-swift-username)
* [tls-ca-blob](https://charmhub.io/containers-docker-registry/configurations#tls-ca-blob)
* [tls-ca-path](https://charmhub.io/containers-docker-registry/configurations#tls-ca-path)
* [tls-cert-blob](https://charmhub.io/containers-docker-registry/configurations#tls-cert-blob)
* [tls-cert-path](https://charmhub.io/containers-docker-registry/configurations#tls-cert-path)
* [tls-key-blob](https://charmhub.io/containers-docker-registry/configurations#tls-key-blob)
* [tls-key-path](https://charmhub.io/containers-docker-registry/configurations#tls-key-path)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* apt-key-server | string

  Default: hkp://keyserver.ubuntu.com:80

  APT Key Server
* auth-basic-password | string

  Password for basic (htpasswd) authentication. Set this to something
  other than an empty string to configure basic auth for the registry.
* auth-basic-user | string

  Default: admin

  Username for basic (htpasswd) authentication.
* auth-token-issuer | string

  The name on the certificate that authentication tokens must me signed by.
* auth-token-realm | string

  The location from which clients should fetch authentication tokens.
* auth-token-root-certs | string

  The root certificate bundle (base64 encoded) for the authentication tokens.
* auth-token-service | string

  The name of the server which authentication tokens will be addressed to.
* cuda\_repo | string

  Default: 10.0.130-1

  The cuda-repo package version to install.
* daemon-opts | string

  Default: {
  "log-driver": "json-file",
  "log-opts": {
  "max-size": "10m",
  "max-file": "100"
  }
  }

  Docker daemon configuration options, in json format, which are written
  directly to `/etc/docker/daemon.json`.

  Prefer to use this instead of `docker-opts`. While the two can
  be used together, care should be taken to not specify the same option
  in both places. Doing so will cause the Docker daemon to exit with an
  error.

  More info about available options can be found at
  https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
* docker-ce-package | string

  Default: docker-ce=5:18.09.1~3-0~ubuntu-bionic

  The pinned version of docker-ce package installed with nvidia-docker.
* docker-opts | string

  Docker daemon command line arguments that are passed to `dockerd` when
  it starts, e.g. `--insecure-registry`.

  Prefer to use `daemon-opts` instead of this. See the `daemon-opts`
  description for more info.
* docker\_runtime | string

  Default: auto

  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\_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.
* extra\_packages | string

  Space separated list of extra deb packages to install.
* http-host | string

  The external URL where the docker registry is hosted. This URL will
  be prepended to all locations generated by the docker registry to
  ensure that those URLs are reachable by the client. For example
  "https://example.com/docker-registry/". Any path component must
  include a trailing "/". If this is not configured then the docker
  registry will derive its location from the incoming requests.
* 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.
* install\_from\_upstream | boolean

  Toggle installation from Ubuntu archive vs the Docker PPA (DEPRECATED; please use docker\_runtime instead).
* install\_keys | string

  List of signing keys for install\_sources package sources, per charmhelpers standard format (a yaml list of strings encoded as a string). The keys should be the full ASCII armoured GPG public keys. While GPG key ids are also supported and looked up on a keyserver, operators should be aware that this mechanism is insecure. null can be used if a standard package signing key is used that will already be installed on the machine, and for PPA sources where the package signing key is securely retrieved from Launchpad.
* install\_sources | string

  List of extra apt sources, per charm-helpers standard format (a yaml list of strings encoded as a string). Each source may be either a line that can be added directly to sources.list(5), or in the form ppa:<user>/<ppa-name> for adding Personal Package Archives, or a distribution component to enable.
* log-level | string

  Default: info

  Logging output level ('error', 'warn', 'info', or 'debug').
* nagios\_context | string

  Default: juju

  Used by the nrpe subordinate charms.
  A string that will be prepended to instance name to set the host name
  in nagios. So for instance the hostname would be something like:
  juju-myservice-0
  If you're running multiple environments with the same services in them
  this allows you to differentiate between them.
* nagios\_servicegroups | string

  A comma-separated list of nagios servicegroups.
  If left empty, the nagios\_context will be used as the servicegroup
* 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

  Default: nvidia-container-runtime=2.0.0+docker18.09.1-1

  The pinned version of nvidia-container-runtime package.
* nvidia-docker-package | string

  Default: nvidia-docker2=2.0.3+docker18.09.1-1

  The pinned version of nvidia-docker2 package.
* package\_status | string

  Default: install

  The status of service-affecting packages will be set to this value in the dpkg database. Valid values are "install" and "hold".
* registry-image | string

  Default: registry:2

  Registry image.
* registry-name | string

  Default: registry

  Name of the registry container.
* registry-port | int

  Default: 5000

  The external port on which the docker registry listens.
* storage-delete | boolean

  Enable/disable the "delete" storage option. False, the default, disables
  this option in the registry config file.
* storage-read-only | boolean

  Enable/disable the "readonly" storage maintenance option. False, the
  default, disables this option in the registry config file.
* storage-swift-authurl | string

  The URL of the keystone used to authenticate to swift.
* storage-swift-container | string

  Default: docker-registry

  The name of the swift container that will hold the images.
* storage-swift-domain | string

  Openstack Identity v3 API domain.
* storage-swift-password | string

  The password to use to access swift.
* storage-swift-region | string

  The region containing the swift service.
* storage-swift-tenant | string

  The tenant containing the swift service.
* storage-swift-username | string

  The username to use to access swift.
* tls-ca-blob | string

  Base64 encoded TLS CA certificate (overwrites tls-cert-path file).
* tls-ca-path | string

  Default: /etc/docker/registry/ca.crt

  Path to the TLS CA certificate.
* tls-cert-blob | string

  Base64 encoded TLS certificate (overwrites tls-cert-path file).
* tls-cert-path | string

  Default: /etc/docker/registry/registry.crt

  Path to the TLS certificate.
* tls-key-blob | string

  Base64 encoded TLS certificate private key (overwrites tls-key-path file).
* tls-key-path | string

  Default: /etc/docker/registry/registry.key

  Path to the TLS certificate private key.
