• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

How to update/add a file in the Docker Image

by admin

The post discusses how to alter a standard docker image pulled from a Public repository in Docker hub as per your need. For the example of this post, we will pull a latest CentOS docker image and add a test directory “test_dir” and create a test file “test_fiel” into it.

Adding a directory and image in the docker image

1. First step is to pull a latest CentOS image from docker hub.

# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
d9aaf4d82f24: Pull complete 
Digest: sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a
Status: Downloaded newer image for centos:latest
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              d123f4e55e12        2 weeks ago         197MB

2. Once the CentOS Image is downloaded, we will run docker container based on this image with the name “centos_test”.

# docker run -it --name="centos_test" centos:latest /bin/bash
[root@e121d03b20dc /]#

3. Now lets create a new directory in the container “test_dir” with a file in it as “test_file”. Also add some random text in the test_file.

[root@e121d03b20dc /]# mkdir test_dir
[root@e121d03b20dc /]# cd test_dir
[root@e121d03b20dc test_dir]# echo "This is a sample text" > test_file         
[root@e121d03b20dc test_dir]# cat test_file
This is a sample text
[root@e121d03b20dc test_dir]# ls -lrt
total 4
-rw-r--r--. 1 root root 22 Nov 19 16:12 test_file

4. Next step is to build the new image with the docker commit command using the newly created docker container. The ‘docker commit’ command is run from docker host and not from the docker container itself.

# docker commit -m="This a test image" centos_test new_centos_image
sha256:93603e53ff5329b314da097e3e5607b60cd1ce126f48cae542c083c715f069f7

Here,
-m=”This a test image” : is a Commit message.
centos_test : Name of the container from which you are creating the image.
new_centos_image: Name of the new image created.

5. After the above command is run, you would see the new image “centos_image” in the list of docker images available locally on the system.

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
new_centos_image    latest              93603e53ff53        52 seconds ago      197MB
centos              latest              d123f4e55e12        2 weeks ago         197MB

Testing the new docker image

We will now test the newly created image by running a new container on it. We should be able to list the test directory and test file created in the new container.

1. Create a new container from the newly built image.

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
new_centos_image    latest              93603e53ff53        11 minutes ago      197MB
centos              latest              d123f4e55e12        2 weeks ago         197MB
# docker run -it --name="image_testing" new_centos_image:latest /bin/bash
[root@24bd49cd0e0e /]#

2. Check for the test directory and test file we have created earlier in the image.

[root@24bd49cd0e0e /]# ls -lrt test_dir
total 4
-rw-r--r--. 1 root root 22 Nov 19 17:09 test_file
[root@24bd49cd0e0e /]# cd test_dir
[root@24bd49cd0e0e test_dir]# cat test_file
This is a sample text

Filed Under: DevOps, Docker

Some more articles you might also be interested in …

  1. How to Install awscli
  2. My Development Environment Set up on Windows to use Python for Web Dev & Data Science
  3. How to Configure Network Namespaces in Docker Containers
  4. How to resolve Docker Search Command Error – “getsockopt: no route to host” in CentOS / RHEL / Fedora
  5. “Error: Could Not Find A Ready Tiller Pod” – helm error
  6. How to use command line shell functions in Linux
  7. How to Create a MySQL Docker Container for Testing
  8. How to backup and restore Docker containers
  9. Troubleshooting kubectl Error: The connection to the server x.x.x.x:6443 was refused – did you specify the right host or port?
  10. Korn Shell select Loop

You May Also Like

Primary Sidebar

Recent Posts

  • What are /dev/zero and /dev/null files in Linux
  • grpck command – Remove corrupt or duplicate entries in the /etc/group and /etc/gshadow files.
  • xxd command – Expressed in hexadecimal form
  • sesearch: command not found

© 2022 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright