If you working in a DevOps or SRE environment, it is very rare to find a person who has not heard of the name containers. In this article, we talk about the life cycle of a container.
For this purpose, we will use docker for a container runtime. Let’s have a look at the docker commands first.
This is used to build the docker image and then put it to the image registry.
This is used to pull the image build in the above portion from the registry.
This will run the image as a docker container
It is used to pause the docker container.
It is used to unpause the docker container.
Stops the docker container
Starts back the docker container.
Kills the docker container.
The life cycle of a container:
This starts with the container image being build and pushed to the image registry. Next step that comes is pulling a container image where you want to deploy the container.
Next, you deploy the container using docker run. Once the container is started you can either pause the container and then you can resume the container.
After your work is complete either your container exits with a status code or you can kill the container from outside using docker kill.
Let’s look at steps one by one.
Building an image.
To build an image you need to create a Dockerfile. In this file, you describe what your containers look like and what packages you have to install in it. Example of a Dockerfile is below.
# # Nginx Dockerfile # # https://github.com/dockerfile/nginx # # Pull base image. FROM dockerfile/ubuntu # Install Nginx. RUN \ add-apt-repository -y ppa:nginx/stable && \ apt-get update && \ apt-get install -y nginx && \ rm -rf /var/lib/apt/lists/* && \ echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \ chown -R www-data:www-data /var/lib/nginx # Define mountable directories. VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"] # Define working directory. WORKDIR /etc/nginx # Define default command. CMD ["nginx"] # Expose ports. EXPOSE 80 EXPOSE 443
This is an example of Nginx image. Once you build the image you can push it to image registry. Use the below command to build the image.
docker build -t nginx:latest
Push to an image registry
After building the image you push it to the image registry like Dockerhub or Artifactory. After that everyone can access the image from that registry and deploy the containers. You can use docker push to push to the repository. Use below command to push to docker hub. Be sure you have to create a username and then you can push.
docker push registry:port/username/repo_name
Pull an image from the registry and run the image.
Next where-ever we want to deploy the image we will pull the image there and deploy it using docker run. You can use the below commands for the same.
docker pull registry:port/username/repo_name docker run repo_name
Now you can see your docker container running if you run the below command.
docker ps # for docker stats you can run docker stats
Once you work is complete your container will die or the other way you have to kill the container using docker kill command.Recommended books for devops and linux admin
This was the life cycle of a container. You can read more about docker on docker documentation.
If you like the article please share and subscribe. Also, read about more DevOps articles here.