Getting started with Docker on Linux
Docker containers are all the rage these days. However, if you’ve used Linux for a while you’ve come across LXC. For FreeBSDĀ users, docker containers will remind you of jails. Docker is essentially the same, but with a better tool chain that makes it easy to build system images and move them around different environments. Docker is also lightweight and very fast when compared to LXC for example.
With traditional office servers increasingly being moved to the cloud, it is easy to see why docker is popular. The ability to deploy and scale easily, makes docker a must-learn tool for IT administrators.
Here are a few notes to get you started with docker. For a detailed instructions, see the official docker user guide.
Getting started with docker
Install docker
yum install docker-io
(On Red Hat based systems)
Start the docker service
systemctl start docker
Pull docker image from the repository
docker pull fedora
(Ensure your Internet speed can handle the size of this image)
List all images available
docker images
Run docker image (interactive mode)
docker run -i -t fedora /bin/bash
(Type exit, to get out and leave container running)
Show containers current running
docker ps
To reconnect to the docker instance after exiting:
docker attach [CONTAINER ID]
To start an existing docker container:
docker start [CONTAINER ID]
To stop a docker container
docker stop
How to ship your first container
Reconnect to the container as shown above.
Show all the changes that were made since initial creation
docker diff [CONTAINER ID]
Commit your changes
docker commit [CONTAINER ID] [TAG]
Then to see the newly created image, run
docker images
You can now share your image. Please note that for the public docker repository, you need to follow the proper naming conventions when picking a tag for your image. Then push the image as follows:
docker push [USERNAME]/[TAG]
As you begin to create images using docker, you may want to read documentation on dockerfiles and how to use them to quickly deploy your containers.