Learn Docker
A Container is to VM today, what VM was to Physical Servers a while ago. The workload seems to shifting towards containers, and fast! In case you haven’t started ramping on it yet, you may find it a bit overwhelming to begin with.
I thought of sharing some byte sized information about Docker every day so that you can come onboard quickly. Stay tuned and subscribe to this blog so that you don’t miss the upcoming posts. Also, feel free to comment, share your experiences and questions. I will try my best to address them as appropriate.
docker
Learn Docker #2 – What is Docker?
Containers provide you an isolated view of the file system and you can play around with your view of the container. Other containers on the same server won’t get affected at all. This helps the developers a lot, since in today’s open source world, the developers tend to work with different versions of different libraries and frameworks.
This also makes your deployment a breeze, since all you need to do now is to ensure that your software works in your container properly. If it works locally, it simply continues to work on any other Linux box, and this is a big, Big, BIG relief! “Works on my box” syndrome, is no longer true with a container backing you
docker
Learn Docker #3 – Set it up
You can install Docker on Mac, Windows, Ubuntu, CentOS, and other supported platforms by following the respective installation guides. As mentioned earlier, because the Docker daemon uses Linux-specific kernel features, you can’t run Docker natively in Windows or OS X. Instead, you must use docker-machine to create and attach to a virtual machine (VM). This machine is a Linux VM that hosts Docker for you on your Mac or Windows.
For a Docker installation on Linux, your physical machine is both the localhost and the Docker host. In networking, localhost means your computer. The Docker host is the computer on which the containers run.
docker
Learn Docker #4 – Playing around
Let’s play around with Docker a bit.
Display Docker Information
Docker information command is useful and you should use it while discussing your issues with someone or may be asking questions on * and the likes.
docker
Learn Docker #5 – What exactly does the Docker Toolbox contain?
So far, we have been playing around with Docker and learnt some random but important commands. Let’s dive a bit deeper and learn some basic concepts and start from what you have already installed… The Docker Toolbox! The toolbox contains the following.
VirtualBox
The Virtual Box is used to host your Linux VM. The default VM is created automatically for you, and the Docker daemon is initialised and set up inside the VM. Your Host client talks to the daemon on the VM and returns the output to your terminal or client.
Continue reading “Learn Docker #5 – What exactly does the Docker Toolbox contain?”→
docker
Learn Docker #6 – Docker Engine, Images & Hub
Docker Engine
Hosted at github, the Docker engine is the core of all this goodness! The Docker engine (or daemon) is standardised so that it looks exactly the same regardless of which host you are running it at. This means that if your code is working well on your Docker Engine, it will continue to work across the board as far as the Docker Engine is same! That’s actually fantastic if you think about it closely.
Continue reading “Learn Docker #6 – Docker Engine, Images & Hub”→
docker
Learn Docker #7 – Docker Container (start, stop, attach, detach & restart)
Things to keep in mind about Containers
- You don’t boot a container. You start it.
- The containers run on a Docker host, which in turn runs on Linux.
- Docker containers are running instances of an Image as you learnt in the previous post.
- Learn $docker run command well, in order to work with containers.
- By default, once the command is executed the containers exit.
Continue reading “Learn Docker #7 – Docker Container (start, stop, attach, detach & restart)”→
docker
Learn Docker #8 – Dockerfile
What is Dockerfile?
You should be pretty comfortable using a Docker Image and creating Containers from it by now. But what if you want to create a custom image explicitly for your requirements?
Answer : Dockerfile!
And remember… Dockerfile != dockerfile != DockerFile. You get the idea.
docker
Learn Docker #9 – Dockerfile (continued)
Tagging an Image
In the previous post, you created an image. As discussed, you can view all images using…
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
imrahulsoni/nginx-base latest 6507bc42ad5a 20 hours ago 155.7 MB
Notice the Tag. An easy way to do this, is to use the following command… notice that the build command now has a :0.1 attached to it as the tag.
Continue reading “Learn Docker #9 – Dockerfile (continued)”→