Docker is an open-source engine that automates the deployment of applications as highly portable, self-sufficient containers.
These containers are both hardware and platform agnostic, meaning that they can run anywhere - from your laptop to the largest cloud server and everything in between.
On top of this, they don’t require that you use a particular language, framework or packaging system. That makes them great building blocks for deploying and scaling web apps, databases and backend services without depending on a particular stack or provider.
Deploying Docker on different cloud providers varies slightly, and Joyent is no exception. This post outlines how to go about deploying Docker on Joyent servers.
Let’s get started
We firstly need to provide read, write and execute access to all users on the /tmp directory, but with the sticky bit that allows only the directories’ owner or the superuser to rename or delete files.
$ chmod 01777 /tmp
To avoid running into storage capacity problems down the line, we need to move /var, /home and /opt to /data and mount a bind between the new and original directories.
Next we need to add the following binds to the /etc/fstab file, which contains information of where your partitions and storage devices should be mounted and how. This allows our binds to persist across reboots.
The default kernel installed on Joyent servers (Linux 3.8.6-joyent-ubuntu-12-opt) does not have an AUFS module. We will therefore install a new kernel that comes with AUFS built in.
To boot this new kernel, we need to set GRUB_DEFAULT to 2 in/etc/default/grub, and run:
Next we need to load the aufs module to the kernel with the following command:
Docker is available as a Ubuntu Personal Package Archive and is hosted
on launchpad, which makes installing Docker on Ubuntu straightforward.
Add the PPA sources to your apt sources list
Update your sources
$ sudo apt-get update
Install, you will se another warning that the package cannot be authenticated. Confirm install.
$ sudo apt-get install lxc-docker
To verify that it worked, download the base ‘ubuntu’ container and run bash inside it while setting up an interactive shell. Type exit to exit.
$ docker run -i -t ubuntu /bin/bash
Type docker to see available commands, and see https://docker.readthedocs.org/en/docs/commandline/cli/ to learn more about them.
Next you can move onto the Hello World example here http://docs.docker.io/en/latest/examples/hello_world/#hello-world.
