Docker installation and configuration
Docker software is available in two editions: Community Edition (CE) and Enterprise Edition (EE).
Docker CE is a good point from which to start learning Docker and using containerized applications. It is available on different platforms and operating systems. Docker CE comes with an installer so you can start working with containers immediately. Docker CE is integrated and optimized for infrastructure so you can maintain a native app experience while getting started with Docker.
Docker Enterprise Edition (EE) is a Container-as-a-Service (CaaS) platform for IT that manages and secures diverse applications across disparate infrastructures, both on-premises and in a cloud. In other words, Docker EE is similar to Docker CE in that it is supported by Docker Inc.
Docker software supports a number of platforms and operating systems. The packages are available for most popular operating systems such as Red Hat Enterprise Linux, Fedora Linux, CentOS, Ubuntu Linux, Debian Linux, macOS, and Microsoft Windows.
Docker installation
The Docker installation process is dependent on the particular operating system. In most cases, it is well described on the official Docker portal—https://docs.docker.com/install/. As a part of this book, we will be working with Docker software on CentOS 7.x. Docker installation and configuration on other platforms is not part of this book. If you still need to install Docker on another operating system, just visit the official Docker web portal.
Usually, the Docker node installation process looks like this:
- Installation and configuration of an operating system
- Docker packages installation
- Configuring Docker settings
- Running the Docker service
Note
We assume that our readers have sufficient knowledge to install and configure a CentOS-based virtual machine (VM) or bare-metal host. If you do not know how to use Vagrant, please follow the guidelines at https://www.vagrantup.com/intro/getting-started/.
Once you properly install Vagrant on your system, just run vagrant init centos/7
followed by vagrant up
. You can verify whether vagrant is up with the vagrant status
command, and finally you can ssh
into VM by using vagrant ssh
command. Since Docker is supported on even the most popular OSes, you have an option to install Docker directly on your desktop OS. We advise you to either use Vagrant or any other virtualization provider such as VMware or KVM, because we have done all the tests inside the virtual environment on CentOS 7. If you still want to install Docker on your desktop OS, follow the link: https://docs.docker.com/install/.
Docker CE is available on CentOS 7 with standard repositories. The installation process is focused on the docker
package installation:
# yum install docker -y
...
output truncated for brevity
...
Installed:
docker.x86_64 2:1.12.6-71.git3e8e77d.el7.centos.1
Dependency Installed:
...
output truncated for brevity
...
Once the installation is completed, you need to run the Docker daemon to be able to manage your containers and images. On RHEL7 and CentOS 7, this just means starting the Docker service like so:
# systemctl start docker # systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
You can verify that your Docker daemon works properly by showing Docker information provided by the docker info
command:
# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
...
output truncated for brevity
...
Registries: docker.io (secure)
Docker configuration
Docker daemon configuration is managed by the Docker configuration file (/etc/docker/daemon.json
) and Docker daemon startup options are usually controlled by the systemd
unit named Docker. On Red Hat-based operating systems, some configuration options are available at /etc/sysconfig/docker
and /etc/sysconfig/docker-storage
. Modification of the mentioned file will allow you to change Docker parameters such as the UNIX socket path, listen
on TCP sockets, registry configuration, storage backends, and so on.