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 instructions.
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 this option.
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
docker composeto 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 <firstname.lastname@example.org>
- (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.
- (boolean) Install docker compose, the formation launch utility
- (boolean) If True, deploy the latest version of docker, when False (default) installs docker.io from the Ubuntu package archive."
- (string) When latest = true, specify the version to install from the PPA. latest = false will always assume use the current stable in distro.