如何永久保存docker容器内的数据和软件?

gia*_*huy 2 vim opencv permanent docker

我正在使用来自andrewssobral 作者的https://hub.docker.com/r/andrewssobral/bgslibrary_opencv3/的 docker 镜像 opencv 。

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

docker run -it -p 5901:5901 andrewssobral/bgslibrary_opencv3 bash

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

apt-get install vim
Run Code Online (Sandbox Code Playgroud)

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

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

tgo*_*gos 5

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

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

当您使用时,docker run ...将根据您在命令中提供的映像创建并启动新容器。它还被分配一个随机值name(如果您没有指定)。如果该容器退出,您可以使用docker start name并再次启动它。这意味着如果您之前安装过它,vim它就会在那里。

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

  1. @Sergiu建议使用 Dockerfile

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

像这样的东西:

docker commit your_modified_container_name [REPOSITORY[:TAG]]
Run Code Online (Sandbox Code Playgroud)