docker 修改容器內容後更新映象的流程

Kevinarcsin001發表於2024-08-24

在 Docker 中,如果你修改了一個容器的內容並希望將這些更改儲存為一個新的映象,可以按照以下步驟進行:
docker version: 26.1

1. 確保容器執行

首先,確保你正在修改的容器是執行中的。如果容器已經停止,你需要啟動它:
docker start <container_id>

2. 進入容器並進行修改(如果尚未修改)

你可以使用 docker exec 命令進入執行中的容器並進行所需的修改。例如,進入容器並使用 shell:
docker exec -it <container_id> /bin/bash
在容器中完成所需的更改(如安裝軟體、修改配置檔案等)。

3. 生成映象

提交容器生成映象

1. 提交映象

完成修改後,你需要將這些更改提交為一個新的映象。使用 docker commit 命令來完成這一操作:
docker commit <container_id> <new_image_name>:<tag>
<container_id>:你的容器的 ID 或名稱。
<new_image_name>:你想為新映象指定的名稱。
:映象的標籤(可選,但推薦使用)。如果不指定,預設標籤是 latest。
例如,提交容器 my_container 為名為 my_new_image 的新映象,並標記為 v1.0:
docker commit my_container my_new_image:v1.0

2. 驗證新映象

你可以使用 docker images 命令來驗證新映象是否建立成功:
docker images

3. 使用新映象

現在,你可以使用新的映象來建立新的容器:
docker run -d <new_image_name>:<tag>
例如,使用之前建立的映象 my_new_image:v1.0:
docker run -d my_new_image:v1.0

容器直接匯出映象

1 確定容器

image
如圖所示,我們使用容器id為df8c的容器匯出,對應的命令為:
docker export -o file_name.tar df8cae66ae57
其中,file_name 為自定義的名字。

2 驗證映象並使用

將映象再次匯入docker import file_name.tar image_name:tag
其中file_name為對應的名字,image_name為映象的名字,tag對應版本資訊。
docker run -itd --name=docker_name --gpus "device=0" --shm-size=16g -p 7112:7100 --restart=always --privileged -v /tmp:/tmp image_name:tag /bin/bash -c "bash
其中,docker_name為對應的容器的名字,image_name為對應的映象的名字,tag為版本資訊。

總結

修改容器:可以進入容器並進行所需的修改。
提交為映象:使用 docker commit 將修改提交為新的映象。
驗證和使用:檢查新映象並使用它來建立新容器。

相關文章