Docker

From SME Server
Jump to navigationJump to search
Warning.png Work in Progress:
This page is a Work in Progress. The contents off this page may be in flux, please have a look at this page history the to see list of changes.


Placeholder for anything to do with Docker (https://docker.com)

See: http://forums.contribs.org/index.php?topic=51095.new#new


Important.png Note:
All info is based on SME Server 9 only.

Your host server must have internet access.


About

Docker logo.png

Docker is an open-source project that automates the deployment of applications inside software containers, providing that way an additional layer of abstraction and automatization of operating system–level virtualization on Linux. Docker uses resource isolation features of the Linux kernel such as cgroups and kernel namespaces to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting virtual machines.


Considerations

  • Storage of image library
  • Storage of Docker application data
  • Networking
  • Stand alone all-in-on docker or linked containers

Installation

We will 'abuse' SME Server as a host for Docker for now. Once there is a basic SME Server image then it's time to setup a regular Centos box that will run docker and hosts many happy SME Server containers ;-)

  • Enable the EPEL repository

yum install docker

yum install docker-io --enablerepo=epel
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S95docker
service docker start

and then

docker

to see the available command line options

Although we've linked the docker as service in runlevel 7, it will not pick up the config files /etc/sysconfig/docker. So Shipyard will not be able to connect to docker. Why?

Docker notes

For Shipyard to be able to connect to the Docker deamon, the file /etc/sysconfig/docker has to be adjusted to enable socket support and TCP.

Templated /etc/sysconfig/docker based on below db settings

/etc/sysconfig/docker:

other_args="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock"

127.0.0.1 (localhost) or 0.0.0.0 (public) based on db key shipyard Access

The restart the Docker deamon:

service docker restart

Loose notes:

docker=service
access=public
status=enabled

Shipyard

Shipyard is a separate GUI project hosted on Github. It will allow you to manage Docker instances and images from your browser. It is not required to use and run Docker containers, for all Docker commands can be issued from the command line.

For Shipyard to be able to manage (multiple) hosts, each and every hosts will need to have shipyard-agent installed.

Installation

Shipyard can be installed as a Docker application itself. We will use this way of installing Shipyard.

Issue the follwoing command as root:

docker run -i -t -v /var/run/docker.sock:/docker.sock shipyard/deploy setup

This will make Docker pull the various layers and images and combine it into fully functional webserver with the Shipyard application installed.


Loose notes:

shipyard=service
TCPPort=4243
access=public
status=enabled

Shipyard agent

Loose notes

shipyard-agent=service
TCPPort=8000;4500
access=public
status=enabled

Things to do