我创建了一个Docker容器,只需在Ubuntu上安装Docker并执行以下操作:
sudo docker run -i -t ubuntu /bin/bash
我立即开始安装Java和一些其他工具,花了一些时间与它,并停止了容器通过
exit
然后我想增加一个卷,并意识到这并不像我想的那样简单。如果我使用sudo docker-v/somedir run...
,那么我最终会得到一个新的容器,因此我必须安装Java并执行之前已经执行的操作,只需要到达一个具有已装入卷的容器。
所有关于从主机装入文件夹的文档似乎都暗示装入卷是创建容器时可以完成的事情。因此,避免从头重新配置新容器的唯一选择是将现有容器提交到存储库中,并在安装卷的同时将其作为新容器的基础。
这确实是向现有容器添加卷的唯一方法吗?
您可以提交现有的容器(即根据容器的更改创建一个新的映像),然后使用新的挂载来运行它。
示例:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a8f89adeead ubuntu:14.04 "/bin/bash" About a minute ago Exited (0) About a minute ago agitated_newton
$ docker commit 5a8f89adeead newimagename
$ docker run -ti -v "$PWD/somedir":/somedir newimagename /bin/bash
如果一切正常,停止你的旧容器,并使用这个新的。
就是这样:)