Docker:数据卷容器没有用`docker create`命令实例化
所以,我试图打包我的WordPress图像的方式,除了上传的所有文件都被持久。 为了做到这一点,我创build了我的Dockerfile,它使用官方的WordPress图片作为其基础,并从档案(包含所有的WordPress文件,主题,插件等)中添加文件,如下所示:
FROM wordpress ADD archive.tar.gz /var/www/html/
由于我希望上传被test2.com-wp-data
,所以我创build了一个单独的数据卷容器,例如test2.com-wp-data
:
docker create -v /var/www/html/wp-content/uploads —name test2.com-wp-data wordpress
然后我简单地通过—-volumes-from
标志挂载它:
docker run —name test2.com --volumes-from test2.com-wp-data -d --link test2.com-mysql:mysql myimage
但是,当我检查我新创build的容器时,我找不到/var/www/html/wp-content/uploads
:
# docker inspect -f '{{.HostConfig.VolumesFrom}}' test2.com [test2.com-wp-data] # docker inspect -f '{{.Volumes}}' test2.com map[/var/www/html:/var/lib/docker/vfs/dir/4fff1d36d5aacd0b2c73977acf8fe680bda6fd891f2c4410a90f6c2dca4aaedf]
我可以看到/var/www/html
和/var/www/html/wp-content/uploads
在我的test2.com-wp-data
数据容器中设置为卷:
# docker inspect -f '{{.Config.Volumes}}' test2.com-wp-data map[/var/www/html:map[] /var/www/html/wp-content/uploads:map[]]
我知道,默认情况下wordpress
图像创build一个/var/www/html
卷,我不介意,但这是否意味着,如果单独安装将忽略该文件夹下的任何东西? 我需要build立自己的WordPress的图像,以便在我的WordPress容器中设置/var/www/html/wp-content/uploads
作为一个卷吗?
非常感谢您的宝贵时间!
编辑:我已经testing了一个与/var/www/html
没有任何关系的文件夹,结果是一样的: —-volumes-from
被忽略。
docker工人的版本1.4 +应该是你需要得到这个工作。 旧版本的docker似乎不能很好地处理用“create”而不是“run”实例化的纯数据容器。
那么经过一些进一步的testing,我已经意识到,尽pipe文档指出,单独的docker create
是不够的,以获得工作的数据量工作。 我只设法通过docker run
命令来实例化他们的数据,如下所示:
docker run —-name data -v /var/www/html/wp-content/uploads mysql true
这种方式容器立即退出,但如果我使用它将数据卷附加到另一个容器,它按预期工作。
如果有人知道这个行为背后的任何具体原因,我会很高兴了解更多,特别是因为文件似乎是误导。
谢谢!
编辑:事实certificate,我正在使用Docker 1.3.x,但尚未实现此function,因此,文档为什么误导我!