This post is part of a series about Docker, including: Docker Introduction Docker: Install software inside a container Docker Volumes Docker Networking - bridge container to host NIC We started with the basics and moved on with adding software, using volumes and then bridging a container to the network. As a said I’m neither a developer or a system administrator, I work as Network Engineer so I’m not the main target for Docker but I found it very useful for a specific need and now it’s time to join the dots.
Today we’ll see Docker networking with a very specific target in mind: bridge container to the host network. This isn’t supposed to be the way of work of containers: a container should be created to run a single application so container networking, from the point of view of a Network Engineer, is essentially a Port Address Translation with a firewall exception. I know that’s a strong simplification, you can find lot of good explanation about Docker networking on Slideshare.
In the last post we saw that any file system change inside a docker container is lost if not committed to the image. What if we want to share data between containers? We can use Docker’s Data Volumes and Data Volume Containers. Data Volumes or Data Volume Containers? Data Volumes feature allows us to mount a local directory from the host inside a container. That looks good but somehow it breaks the concept of isolation between host and container.
In the first post of this series we left with a running Ubuntu 15.04 container. Now it’s time to install software inside the container. A container is “stateless”, meaning any file change inside a container is lost when the container is closed, including software installations. Install software To install software inside a container any method supported for the Linux distribution is fine. I usually install Python 2.7, iftop, htop, tmux so let’s run a container:
Docker and more generic Linux containers technology are a hot topic these days. The website says “for developers and sysadmins”, I am neither of the two but I can still find some useful applications for containers as a Network Engineer. Let’s start from the basics. Install docker and first run We can apt-get to install docker on Ubuntu Linux: apt-get install docker.io Now start docker service: service docker start That was easy.