如何将数据和软件永久保存在 docker 容器中



我正在使用 docker image opencv from https://hub.docker.com/r/andrewssobral/bgslibrary_opencv3/安德鲁索布拉尔的作者。

首先,我通过键入命令初始化图像的容器:

Docker Run -it -p 5901:5901 Andrewssobral/bgslibrary_opencv3 Bash

我尝试通过命令行安装 vim:

apt-get install vim

但是当我使用 exit COMMAND 离开容器并再次运行它时,vim 被卸载了。

那么如何在 docker 中永久安装 vim 或其他软件呢?

但是当我退出容器上方的 docker 并再次运行它时,vim 被卸载了。

这就是问题所在:docker run创建一个新容器。

使用 docker run ... 时,将根据您在命令中提供的映像创建和启动新容器。它还被分配了一个随机name(如果未指定)。如果此容器退出,则可以使用 docker start name 并重新启动它。这意味着,如果您以前安装了vim它将在那里。

解决方案:创建一个包含所需内容的新映像。

  1. @Sergiu建议使用 Dockerfile

  2. 另一种方法是将容器的当前状态保存到新映像,以便以后可以使用它来创建包含更改的新容器。为此,您可以使用 docker 提交

像这样:

docker commit your_modified_container_name [REPOSITORY[:TAG]]

您有两种选择:或者编辑作者提供的 Dockerfile 以添加 vim,或者从映像创建新的Dockefile

最新更新