Deploys Docker Engine, a portable, lightweight runtime and packaging tool.
This charm provides Docker. Docker is an open platform for
developers and sysadmins to build, ship, and run distributed applications.
Consisting of Docker Engine, a portable, lightweight runtime and packaging tool,
and Docker Hub, a cloud service for sharing applications and automating
workflows, Docker enables apps to be quickly assembled from components and
eliminates the friction between development, QA, and production environments
Did you know?
There's a full documentation site that serves as a manual/accompanyment to this charm.
have a look at the Github Pages Docsite
for more in-depth information about the charm, development patterns, and usage
Using the Docker Charm
Step by step instructions on using the Docker charm:
juju deploy cs:~lazypower/trusty/docker
Scale out Usage
Scaling out the Docker service is as simple as adding additional Docker units
to expand your cluster. However, you will need an SDN solution to provide cross
host networking. See the Known Limitations and issues about this.
latest : By default the charm assumes installation from the ubuntu
repositories. If you wish to deploy the latest upstream Docker runtime enable
version : String representation of the version you wish to deploy. This helps
when scaling a cluster post deployment, to ensure you dont have mismatched
versions deployed due to a new release
juju set docker version=1.6.2
compose : Boolean representtion on if you wish to include
to be installed during the installation of
docker. This allows you to
leverage a yaml file to spin up and manage multiple containers that
comprise a single application stack.
aufs : new as of v0.1.6 Defaults the backend storage driver to AUFS. The
older option of device mapper was horribly broken in most setups, and has
been completely depreciated by the Docker foundation. Disable to keep the
DeviceMapper backend. - Not recommended. note this will break existing
containers if you upgrade existing setups. Ensure you account for this when
upgrading your Docker clusters that are previously deployed with this charm.
See blurb under Known Issues for migration instructions.
Known Limitations and Issues
Performance will suffer on an AWS t1.micro unit - as it has such a limited amount of ram. Between
the juju unit-agent, and the Docker daemon + workloads - you will only be able to run the smallest
of deployments on them. Thus it is not recommended.
Local Provider Blockers
The Docker Charm will not work out of the box on the
local provider. LXC containers are goverend by a
very strict App Armor
policy that prevents accidental
misuses of privilege inside the container. Thus running the Docker Charm inside the local provider
is not a supported deployment method.
Additional information will be made available after more research has been done on enabling the
Docker charm to be deployed into a LXC container environment, and while unsupported it will
outline the process to enable such scenarios for users that wish to test on the local provider.
Host Only Networking
By default, Docker deploys a host-only bridge adapter. Containers are able to communicate with one
another if you forward host ports to the containers using the
-p option. More on this in the
Deploying Containers docpage.
There are other ways to enable cross-host communication using
Supporting Charms that will enable an
overlay-network - but are outside the scope of these help pages.
AUFS Upgrade Stopped my containers from working
If you have older containers deployed and running, you will need to pause them
and export. Once the tarballs of the containers have been exported - upgrade
your cluster and reimport following the CLI instructions below as a guide
docker export <<container id>> > mycontainer-latest.tgz # upgrade docker import -i mycontainer-latest - mycontainer:latest docker run <<options>> mycontainer:latest
- Author: Charles Butler <email@example.com>
- (boolean) Install docker compose, the formation launch utility
- (boolean) Change the backend storage driver from devicemapper to AUFS. The device mapper storage engine is known to be problematic, and AUFS is not enabled by default in Ubuntu. This will install AUFS support and swap the backend. **NOTE** It is not recommended to reconfigure this post deployment. You may incur dataloss.
- (string) When latest = true, specify the version to install from the PPA. latest = false will always assume use the current stable in distro.
- (boolean) If True, deploy the latest version of docker, when False (default) installs docker.io from the Ubuntu package archive."