Docker
From charlesreid1
Overview
What is Docker
Docker is a way of deploying apps on servers. It packages apps into side-by-side containers. These are similar in spirit to virtual machines, but different because containers are not (or, don't have to be) fully bundled operating systems. The container system makes sure everything runs the same everywhere.
It's like Homebrew or Aptitude for apps.
Installing
Docker has great documentation on getting up and running: https://docs.docker.com/
Docker also provides several examples of docker-izing an app: https://docs.docker.com/engine/examples/
Linux
You can get docker running on many virtual hosting services.
Linode supports docker: https://blog.linode.com/2014/01/03/docker-on-linode/
They offer installation guides for different distributions: https://docs.docker.com/engine/installation/linux/#install-using-the-repository
Ubuntu
Guide to installing Docker on Ubuntu Linux: https://docs.docker.com/engine/installation/linux/ubuntulinux/
Start by setting up Docker's repositories:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Add Docker's GPG key:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify fingerprint starts with 9DC8:
$ sudo apt-key fingerprint 0EBFCD88
Set up the stable repository:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Install docker by updating package index and running install:
$ sudo apt-get update $ sudo apt-get install docker-ce
Test it out:
$ sudo docker run hello-world
Errors
When I added Docker's repos to my aptitude following the instructions above, I kept seeing 403 errors from docker's repo when I ran apt-get update:
sudo apt-get update ... W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/wily/stable/binary-amd64/Packages HttpError403
Resolving
Resolved the problem by downloading the right package myself.
Start with the name of your release:
$ lsb_release -c Codename: wily
Now navigate to their aptitude repositories in your browser: https://apt.dockerproject.org/repo/pool/main/d/docker-engine/
Find the deb file that corresponds to your install and copy the link.
$ wget <link to .deb file>
Now you can install it (you probably need to be sudo):
$ dpkg -i docker-engine_1.9.1-0~wily_amd64.deb Selecting previously unselected package docker-engine. (Reading database ... 142272 files and directories currently installed.) Preparing to unpack docker-engine_1.9.1-0~wily_amd64.deb ... Unpacking docker-engine (1.9.1-0~wily) ... Setting up docker-engine (1.9.1-0~wily) ... Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for systemd (225-1ubuntu9.1) ... Processing triggers for man-db (2.7.4-1) ...
Mac
You can run docker on Mac: https://docs.docker.com/docker-for-mac/
Up and Running
Test
Test you are up and running with a working install of docker:
$ docker --version Docker version 17.03.0-ce, build 60ccb22 $ docker-compose --version docker-compose version 1.11.2, build dfed245 $ docker-machine --version docker-machine version 0.10.0, build 76ed2a6 $ docker version Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 13:20:08 UTC 2015 OS/Arch: linux/amd64 Cannot connect to the Docker daemon. Is the docker daemon running on this host?