← All Articles

Installing Docker on Joyent Ubuntu

Khash SajadiKhash Sajadi
Aug 1st 13Updated Jul 27th 17

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.

$ mv /var /data/
$ mkdir /var
$ mount --bind /data/var /var 
$ mv /home /data/
$ mkdir /home
$ mount --bind /data/home /home 
$ mv /opt /data/
$ mkdir /opt
$ mount --bind /data/opt /opt

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.

$ cat << EOL >> /etc/fstab 
/data/var /var none bind 0 0 
/data/opt /opt none bind 0 0 
/data/home /home none bind 0 0 

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.

$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring

To boot this new kernel, we need to set GRUB_DEFAULT to 2 in
/etc/default/grub, and run:

$ update-grub
$ sudo reboot

Next we need to load the aufs module to the kernel with the following command:

$ modprobe aufs
$ sudo reboot

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

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:dotcloud/lxc-docker

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.

Try Cloud 66 for Free, No credit card required