如何永久保存 docker 容器内的数据和软件?
How can i save the data and softwares inside docker container permanently?
我正在使用 docker 来自 https://hub.docker.com/r/andrewssobral/bgslibrary_opencv3/ 的图像 opencv
andrewssobral 作者。
首先,我通过输入命令初始化了图像的容器:
docker 运行 -it -p 5901:5901 andrewssobral/bgslibrary_opencv3 bash
我尝试通过命令行安装 vim:
apt-get install vim
但是当我使用 exit 命令退出容器并且我再次 运行 然后 vim 已卸载。
那么我如何在 docker 中永久安装 vim 或其他软件?
你有两个选择:或者你编辑作者提供的 Dockerfile 添加 vim 或者你创建一个新的 Dockerfile 来自 图片。
But when i exit docker above container and i run it again then vim was uninstalled.
这就是问题所在:docker run
创建了一个新容器。
当您使用 docker run ...
时,会根据您在命令中提供的图像创建并启动一个新容器。它也被分配了一个随机的 name
(如果你没有指定)。如果此容器退出,您可以使用 docker start name
并再次启动它。这意味着如果您之前安装了 vim
,它将在那里。
解决方案:创建一个包含您需要的新图像。
@Sergiu建议使用Dockerfile
或另一种方法是将容器的当前状态保存到新图像中,以便以后可以使用它来创建包含更改的新容器。为此,您可以使用 docker commit
像这样:
docker commit your_modified_container_name [REPOSITORY[:TAG]]
我正在使用 docker 来自 https://hub.docker.com/r/andrewssobral/bgslibrary_opencv3/ 的图像 opencv andrewssobral 作者。
首先,我通过输入命令初始化了图像的容器:
docker 运行 -it -p 5901:5901 andrewssobral/bgslibrary_opencv3 bash
我尝试通过命令行安装 vim:
apt-get install vim
但是当我使用 exit 命令退出容器并且我再次 运行 然后 vim 已卸载。
那么我如何在 docker 中永久安装 vim 或其他软件?
你有两个选择:或者你编辑作者提供的 Dockerfile 添加 vim 或者你创建一个新的 Dockerfile 来自 图片。
But when i exit docker above container and i run it again then vim was uninstalled.
这就是问题所在:docker run
创建了一个新容器。
当您使用 docker run ...
时,会根据您在命令中提供的图像创建并启动一个新容器。它也被分配了一个随机的 name
(如果你没有指定)。如果此容器退出,您可以使用 docker start name
并再次启动它。这意味着如果您之前安装了 vim
,它将在那里。
解决方案:创建一个包含您需要的新图像。
@Sergiu建议使用Dockerfile
或另一种方法是将容器的当前状态保存到新图像中,以便以后可以使用它来创建包含更改的新容器。为此,您可以使用 docker commit
像这样:
docker commit your_modified_container_name [REPOSITORY[:TAG]]