docker 修改容器內(nèi)容后更新鏡像的流程
在 Docker 中,如果你修改了一個容器的內(nèi)容并希望將這些更改保存為一個新的鏡像,可以按照以下步驟進(jìn)行:
docker version: 26.1
1. 確保容器運(yùn)行
首先,確保你正在修改的容器是運(yùn)行中的。如果容器已經(jīng)停止,你需要啟動它:
docker start <container_id>
2. 進(jìn)入容器并進(jìn)行修改(如果尚未修改)
你可以使用 docker exec 命令進(jìn)入運(yùn)行中的容器并進(jìn)行所需的修改。例如,進(jìn)入容器并使用 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>:你想為新鏡像指定的名稱。
例如,提交容器 my_container 為名為 my_new_image 的新鏡像,并標(biāo)記為 v1.0:
docker commit my_container my_new_image:v1.0
2. 驗證新鏡像
你可以使用 docker images 命令來驗證新鏡像是否創(chuàng)建成功:
docker images
3. 使用新鏡像
現(xiàn)在,你可以使用新的鏡像來創(chuàng)建新的容器:
docker run -d <new_image_name>:<tag>
例如,使用之前創(chuàng)建的鏡像 my_new_image:v1.0:
docker run -d my_new_image:v1.0
容器直接導(dǎo)出鏡像
1 確定容器

如圖所示,我們使用容器id為df8c的容器導(dǎo)出,對應(yīng)的命令為:
docker export -o file_name.tar df8cae66ae57
其中,file_name 為自定義的名字。
2 驗證鏡像并使用
將鏡像再次導(dǎo)入docker import file_name.tar image_name:tag
其中file_name為對應(yīng)的名字,image_name為鏡像的名字,tag對應(yīng)版本信息。
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為對應(yīng)的容器的名字,image_name為對應(yīng)的鏡像的名字,tag為版本信息。
總結(jié)
修改容器:可以進(jìn)入容器并進(jìn)行所需的修改。
提交為鏡像:使用 docker commit 將修改提交為新的鏡像。
驗證和使用:檢查新鏡像并使用它來創(chuàng)建新容器。

浙公網(wǎng)安備 33010602011771號