Docker containers have created new momentum in the virtualization and container area. Docker containers are processes running on the host operating system in a restricted environment.

Docker engine is used to manage the life cycle of the containers with various commands. We will look these sub-commands in this tutorial.

Docker Container

Now some terminology. Docker ecosystem provides a lot of different systems and terms about the work. A container is data and process that is running in a restricted way in a host as process. Generally working state is called container.

Docker Image

Docker image is the data files provided by different repositories. Docker image generally provides base operating system files and user spaces files related with the image.

Docker Hub

Docker hub is popular and most used hub for providing docker images. As the creator and maintainer it is very popular and comes by default with Docker engine. Docker hub provides image for Ubuntu, Apache, CentOS, RabbitMQ, …

There are also alternative hubs those provides paid or more specialized Docker images. Also we can create some private Docker hubs.

Pull Container Image

Docker Images are downloaded from repositories like Docker Hub. In order to start a container we need to get Image of the container. This is called pulling of the image. Pulling image will download related image files from repository to the local Docker image location. Default docker image location is /var/lib/docker/image . We will use pull command. In the example we will download the Fedora image from Docker Hub.

$ sudo docker pull fedora

As we can see from screenshot while downloading an image just image name is not enough. We should also provide a tag which will specify exact image. But there is a shortcut provided by docker. If no tag is provided docker assumes tag latest by default.

Create Container

We have downloaded image for Fedora in previous example. Now we can create a container without starting it. Actually a container can be started directly without creating it which will create automatically. Creating container will not start it. We will use create subcommand for this. In this example we will create container by giving name to it with --name option. The name of the new container will be myfed .

$ docker create fedora --name myfed

After creation is completed a hash values is provided. This id the ID of the container and used for specify container in the various container related operations.

Start Docker Container

In this step we will start container by specifying the base image name. Starting container will create new process in the host operating system according to the container parameters. We will use run command with various options where we look them in detail next examples.

$ docker run fedora /bin/bash

After command operation completed the container will stop. This is the nature of the containers. They starts, runs and stops generally in limited times.

Connect Container To Terminal

Previous example we have started container but after the command complation the session end. If we need connect to the terminal of the container and want to issue commands we should provide -i and -t parameters like below.

$ docker run -t -i fedora /bin/bash

The container is no stopped after command operation. We can issue commands here as root user of the container. If we do not provide a host name the host name is provided as random.

List Containers

We may need to list currently running containers in a host. We will use ps command for this. For more information about the container status read following post.

How To Get Information About Running Containers, Images In Docker?

$ docker ps

Rename Container

Currently running containers names can be changed. But keep in mind we do not change the ID we will change the name which is like a tag. We will use rename command with container id and new name. In the example the container id is f991c8869664 and new name will be set as mynewname .

$ docker rename f991c8869664 mynewname

Stop Container

We can stop the Docker container with stop subcommand.

$ docker stop f991c8869664

Delete and Remove Container

Containers are generally used for limited time. So after the use of container ends the container will be deleted and related resources will be freed. We can delete a container with rm command which is similar to Linux bash. In order to remove a container the container should be stopped as defined previous example. We will also provide container id for remove. In this example we remove the container with id f991c8869664

$ sudo docker rm f991c8869664

Pause Container

Pausing container maybe needed some times to cut down CPU usage. We can pause a container with pause sub-command by providing container id.

$ docker pause a264a020b160