我有一个 Docker 容器,我只需在 Ubuntu 上安装 Docker 并执行以下操作即可创建:
sudo docker run -i -t ubuntu /bin/bash
我立即开始安装 Java 和其他一些工具,花了一些时间,并通过以下方式停止了容器
exit
然后我想添加一个卷,并意识到这并不像我想象的那么简单。如果我使用sudo docker -v /somedir run ...,那么我最终会得到一个全新的容器,所以我必须安装 Java 并执行我之前已经完成的操作,才能到达一个安装了卷的容器。
sudo docker -v /somedir run ...
所有关于从主机挂载文件夹的文档似乎都暗示挂载卷是在创建容器时可以完成的事情。因此,我必须避免从头开始重新配置新容器的唯一选择是将现有容器提交到存储库,并在安装卷时将其用作新容器的基础。
这确实是向现有容器添加卷的唯一方法吗?
您可以提交现有容器(即从容器更改创建新映像),然后使用新挂载运行它。
例子:
$ 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
如果一切正常,请停止旧容器,并使用这个新容器。
那是它:)