所以,我正试图以一种除了上传之外的所有文件都被保留的方式打包我的WordPress图像。为了做到这一点,我创建了我的Dockerfile,它使用官方的WordPress图像作为基础,并添加了存档中的文件(包含所有WordPress文件,主题,插件等),如下所示:
FROM wordpress
ADD archive.tar.gz /var/www/html/
由于我希望保留上传内容,因此我创建了一个单独的数据卷容器,例如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
但是,当我检查新创建的容器时,我找不到/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
图片会创建一个/var/www/html
卷,我并不介意,但这是否意味着如果单独安装,则忽略该文件夹下的任何内容?我是否需要构建自己的WordPress图像才能将/var/www/html/wp-content/uploads
设置为我的WordPress容器中的卷?
非常感谢你的时间!
编辑:我使用与/var/www/html
无关的文件夹测试了不同的设置,结果相同:—-volumes-from
被忽略。
答案 0 :(得分:1)
版本1.4 +的docker应该是你需要的工作。较旧版本的docker似乎不能很好地处理使用“create”而不是“run”实例化的仅数据容器。
答案 1 :(得分:0)
嗯,经过一些进一步的测试,我已经意识到,尽管文档指出,仅docker create
并不足以使工作数据量正常工作。我只是通过使用docker run
命令实例化它们来设法获得工作数据量,如下所示:
docker run —-name data -v /var/www/html/wp-content/uploads mysql true
这样容器会立即退出,但如果我使用它将数据卷附加到另一个容器,它会按预期工作。
如果有人知道这种行为背后的具体原因,我很乐意了解更多,特别是因为文档似乎有误导性。
谢谢!
编辑:事实证明我使用的是Docker 1.3.x,但尚未实现此功能,因此文档误导我的原因!