Been playing with Docker again this weekend, this time rather than just doing for the sake of doing it I went for something a little more stable.

I started off by creating a new DigitalOcean droplet with the latest CentOS installed to run as a base. I then installed docker using the Docker Puppet Module .

So now I had Docker installed now what? I looked at some PaaS services, a bulk of them require Ubuntu (which I simply don’t do on servers), however Shipyard looked good. It was simple to install;

Deploying a Stable Docker Setup on CentOS with Shipyard 1/3
yum install http://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io vim-enhanced
vim /etc/sysconfig/docker # Replace other_args=”” with other_args=”-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock”
service docker start
chkconfig docker on
docker run -i -t -v /var/run/docker.sock:/docker.sock shipyard/deploy setup

Once installed I added the agent using;

Deploying a Stable Docker Setup on CentOS with Shipyard 2/3
curl https://github.com/shipyard/shipyard-agent/releases/download/v0.3.1/shipyard-agent -L -o /usr/local/bin/shipyard-agent
chmod +x /usr/local/bin/shipyard-agent 
shipyard-agent -url http://<shipyard-host>:8000 -register

Once the agent has been registered you should have a key, make a note of this because you need to ensure that the agent is always running, to do this I used supervisord ;

Deploying a Stable Docker Setup on CentOS with Shipyard 3/3
yum install python-pip
pip install “pip>=1.4,<1.5” — upgrade
pip install supervisor

cat >> /etc/supervisord.conf << SUPERDUPER
[supervisord]

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[inet_http_server]
port = 127.0.0.1:9001

[supervisorctl]
serverurl=http://127.0.0.1:9001

[program:shipyard]
command = shipyard-agent -url http://<shipyard-host>:8000 -key <shipyard-key>
SUPERDUPER

supervisord -c /etc/supervisord.conf

As I needed to checkout PHP 5.5 & MySQL 5.6 on CentOS using The IUS Community Project for another project I created the a GitHub Repo and then published it as a trusted build on the Docker Index .