docker學習15-Docker 使用修改後容器來建立映象
阿新 • • 發佈:2020-12-04
前言
前面講通過 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.out2 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
這樣我們的新映象就構建成功了