From charlesreid1

No edit summary
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
=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.  
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.
It's like [[Homebrew]] or [[Aptitude]] for apps.


=Installing=
[[Docker/Troubleshooting]]
 
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:
 
<pre>
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
</pre>
 
Add Docker's GPG key:
 
<pre>
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
</pre>
 
Verify fingerprint starts with 9DC8:
 
<pre>
$ sudo apt-key fingerprint 0EBFCD88
</pre>
 
Set up the stable repository:
 
<pre>
$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
</pre>
 
Install docker by updating package index and running install:
 
<pre>
$ sudo apt-get update
$ sudo apt-get install docker-ce
</pre>
 
Test it out:
 
<pre>
$ sudo docker run hello-world
</pre>
 
 
 
====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:
 
<pre>
sudo apt-get update
...
W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/wily/stable/binary-amd64/Packages  HttpError403
 
</pre>
 
 
====Resolving====
 
Resolved the problem by downloading the right package myself.


Start with the name of your release:
[[Docker/Network Debugging]]


<pre>
=References=
$ lsb_release -c
Codename:                    wily
</pre>


Now navigate to their aptitude repositories in your browser: https://apt.dockerproject.org/repo/pool/main/d/docker-engine/
Docker's documentation is excellent: https://docs.docker.com/


Find the deb file that corresponds to your install and copy the link.
Docker from the command line: https://docs.docker.com/engine/reference/commandline/cli/


<pre>
Docker to run memcached (Digital Ocean guide): https://www.digitalocean.com/community/tutorials/docker-explained-how-to-create-docker-containers-running-memcached
$ wget <link to .deb file>
</pre>


Now you can install it (you probably need to be sudo):
Note that many Docker issues on Github contain a wealth of useful debugging strategies and commands for checking the state of networks, ports, etc. Example: https://github.com/docker/docker/issues/13914


<pre>
Potential security issues with Docker containers: https://blog.docker.com/2013/08/containers-docker-how-secure-are-they/
$ 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) ...
</pre>


==Mac==
=Flags=


You can run docker on Mac: https://docs.docker.com/docker-for-mac/
{{DockerFlag}}

Latest revision as of 09:40, 28 February 2018

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.

Docker/Troubleshooting

Docker/Network Debugging

References

Docker's documentation is excellent: https://docs.docker.com/

Docker from the command line: https://docs.docker.com/engine/reference/commandline/cli/

Docker to run memcached (Digital Ocean guide): https://www.digitalocean.com/community/tutorials/docker-explained-how-to-create-docker-containers-running-memcached

Note that many Docker issues on Github contain a wealth of useful debugging strategies and commands for checking the state of networks, ports, etc. Example: https://github.com/docker/docker/issues/13914

Potential security issues with Docker containers: https://blog.docker.com/2013/08/containers-docker-how-secure-are-they/

Flags