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

时间:2017-10-11 11:10:26

标签: opencv docker vim permanent

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

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

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

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

apt-get install vim

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

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

2 个答案:

答案 0 :(得分:3)

  

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

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

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

解决方案:创建一个新图片,其中包含您需要的内容。

  1. @Sergiu建议使用Dockerfile

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

  3. 类似的东西:

    docker commit your_modified_container_name [REPOSITORY[:TAG]]
    

答案 1 :(得分:2)

您有两个选择:或者您编辑作者提供的 Dockerfile 以添加vim,或者您创建一个新的 Dockefile FROM 图像