在Docker容器中安装了许多软件,并希望将当前容器的状态保存为一个新的镜像,可以使用docker commit
命令来创建一个新的镜像。以下是如何操作的步骤:
-
找到容器ID或名称:
首先,需要找到想要保存的容器的ID或名称。可以使用docker ps
命令来列出所有正在运行的容器,或者使用docker ps -a
来列出所有容器(包括停止的)。docker ps
或者
docker ps -a
-
提交容器为新镜像:
使用docker commit
命令和容器的ID或名称来创建一个新的镜像。还可以为新镜像指定一个名称和标签。sudo docker commit [容器ID或名称] [新镜像名称]:[标签]
例如,如果容器ID是
123abc
,并且想要将新镜像命名为my_custom_image
,标签为latest
,可以执行:sudo docker commit 123abc my_custom_image:latest
这将创建一个新的镜像,可以使用
docker images
命令来查看它。
nvidia@nvidia-desktop ~> docker ps (base)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7158bba0f440 nvcr.io/nvidia/l4t-pytorch:r35.2.1-pth2.0-py3 "/bin/bash" 6 minutes ago Up 6 minutes zen_ishizaka
CONTAINER ID
-
查看新创建的镜像:
使用docker images
命令来查看所有可用的镜像,包括刚刚创建的镜像。docker images
应该能够在列表中看到新镜像,以及它的名称、标签和ID。
-
使用新镜像运行容器:
现在可以使用这个新镜像来启动新的容器,就像使用任何其他Docker镜像一样。sudo docker run -it --rm [新镜像名称]:[标签] /bin/bash
例如:
sudo docker run -it --rm my_custom_image:latest /bin/bash
这样,就可以保存包含所有安装软件的容器状态为一个新的Docker镜像,并在将来使用这个镜像来创建具有相同软件环境的新容器。