docker學習15-Docker 使用修改后容器來創建鏡像


前言

前面講通過 Dockefile 可以制作自己的鏡像,通過鏡像創建容器啟動服務,有時候需要修改容器里面的內容,比如我們想改點BUG。
我們可以直接在容器里面修改,驗證通過后,基於現有的容器創建一個新的鏡像。

docker commit

docker commit 命令是從容器創建一個新的鏡像, 基本語法

docker commit [OPTIONS] 容器名稱或id 鏡像名稱:tag

PTIONS參數說明:
-a :提交的鏡像作者;
-c :使用Dockerfile指令來創建鏡像;
-m :提交時的說明文字;
-p :在commit時,將容器暫停。

修改容器內容

先通過基礎鏡像,啟動一個容器后

[root@VM_0_2_centos ~]# docker images
django_yoyo         latest              984e5b0a9896        7 weeks ago         1.2GB
[root@VM_0_2_centos ~]# docker run -d -p 8004:8000 --name web_yoyo1  django_yoyo
874813d5c13fa002f6c5886a6b4c2cbc7d96639a3c8ef4de9154d4352b61b70b

docker exec 進入到容器

docker exec -it web_yoyo1 /bin/bash

可以查看容器內部的文件

root@874813d5c13f:/code# ls
1 	    Dockerfile	       LICENSE	  __pycache__	  djoflower.out 2  images  manage.py  requirements.txt	suite	   uwsgi.ini
ApiManager  HttpRunnerManager  README.md  celerybeat.pid  hrun_case.zip    logs    reports    static		templates
root@874813d5c13f:/code# 

我想通過vi 去編輯文件

root@874813d5c13f:/code# vi requirements.txt 
bash: vi: command not found

發現沒有vi 命令 ,出現bash: vi: command not found

使用apt-get工具下載vim命令行工具

apt-get update
apt-get -y install vim

等下載完成后,就有vi命令編輯了

最后exit退出容器,回到宿主機上

容器創建新鏡像

前面在容器里面做了一些修改,安裝了vim 命令行工具,接着我們基於前面的容器構建一個新的鏡像

使用docker commit 創建新的鏡像,先查看容器id

[root@VM_0_2_centos ~]# docker ps
CONTAINER ID  IMAGE        COMMAND       CREATED         STATUS        PORTS                   NAMES                                                                                 
874813d5c13f  django_yoyo  "python..."   38 minutes ago  Up 38 minutes 0.0.0.0:8004->8000/tcp  web_yoyo1                                                                  

通過容器的 CONTAINER ID 值874813d5c13f 或者NAMES名稱 web_yoyo1來創建新鏡像

[root@VM_0_2_centos ~]# docker commit web_yoyo1  new_web:v1.0
sha256:ee5f78f470f9c715b0df77eead2dececad6d998b615138f69acfc28f8e95cd03

也可以帶上-a和-m參數添加鏡像提交信息

[root@VM_0_2_centos ~]# docker commit -a "author_yoyo" -m "add vim" web_yoyo1  new_web:v1.1 
sha256:078d76416146e0901a948cb8ca9ec3c79425360767caa03602c6810d54e4f25b

最后docker images 查看剛才構建的本地鏡像

[root@VM_0_2_centos ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
new_web             v1.0                ee5f78f470f9        About a minute ago   1.24GB
new_web             v1.1                078d76416146        22 minutes ago       1.24GB
django_yoyo         latest              984e5b0a9896        7 weeks ago          1.2GB

這樣我們的新鏡像就構建成功了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM