docker - 在Bluemix容器上安装卷并在它们之间共享不起作用

我已经建立了一个

$ cf ic volume create mosquitto_config

此信息按预期显示:
$ cf ic volume list
mosquitto_config

然后,我创建了两个基于图像的容器,该容器在其Dockerfile中包含VOLUME ["/etc/mosquitto"]行,并且可以通过SSH登录到该容器:
$ cf ic run -p 22:22 --volume mosquitto_config:/etc/mosquitto --name ssh-test registry.ng.bluemix.net/{reg-name}/{image-name}:latest
$ cf ic run -p 22:22 --volume mosquitto_config:/etc/mosquitto --name ssh-test-2 registry.ng.bluemix.net/{reg-name}/{image-name}:latest

登录后,我在两个容器上都将挂载点/etc/mosquitto视为目录。但是,如果我在一个容器中的该目录中创建文件,则新文件不会显示在另一个容器中。据我了解卷的概念,新文件应显示在另一个容器中。它当前无法正常工作还是如何正确设置?

最佳答案

我认为docker不支持这种共享卷的方式。

为了使一个容器能够访问另一个容器的卷,您只需将–volumes-from参数赋予docker run即可。例如:

$ docker run -it -h NEWCONTAINER --volumes-from container-test debian /bin/bash

所有在“容器测试”中安装的卷将对“NEWCONTAINER”可用(具有相同的安装选项)

重要的是要注意,即使容器测试未运行,它也可以工作:只要容器链接到某个卷,它就永远不会被删除。

如需更多帮助,请检查此网址
http://container-solutions.com/understanding-volumes-docker/

https://stackoverflow.com/questions/32291499/

相关文章:

mongodb - 从BSON文件创建Hive表时,列值变为NULL

hadoop - Hive Joins可以在Apache Nifi中实现吗?

docker - 使用RUN的结果来设置变量

hadoop - 如何在长度大于VARCHAR(32k)的BIGSQL表中存储字符串数据

hadoop - 关闭电源后重新启动hadoop HA群集节点后,名称节点失败

docker - 无法通过Registry.ng.bluemix.net上的IBM Containe

hadoop - Hadoop:如何正确停用集群上的节点?

hadoop - hadoop fs -mkdir:没有这样的目录

python - 如何在pySpark中从字符串数据框中有效替换多个正则表达式模式的所有实例?

networking - 从 docker 容器运行 docker build 时主机名解析失败