我可以在只读卷下安装可写入的Docker卷吗?

我试图装入一个可写的Docker卷作为一个只读卷的孩子,但我得到这个错误:

ERROR: for wordpress rpc error: code = 2 desc = "oci runtime error: could not synchronise with container process: mkdir /mnt/sda1/var/lib /docker/aufs/mnt/.../var/www/html/wp-content/uploads: read-only file system" 

我正在使用一个WordPress图像,而我要装入的两个卷是:

  • / var / www / html / wp-content:包含我的开发代码。 只读,因为我不想要任何意外的更改。
  • / var / www / html / wp-content / uploads:用户上传的文件。 必须是可写的。

快速解决scheme是将上传移到其他地方,但我更喜欢Docker解决scheme。

我的docker-compose.yml的相关部分:

 volumes: uploads: driver: local services: wordpress: volumes: - /dev/workspace/wp-content/:/var/www/html/wp-content/ - uploads:/var/www/html/wp-content/uploads 

是的,一般来说,你可以! 以下是只读父path的示例

 -v $DIR/htdocs:/var/www/html:ro 

和另一个坐骑

 -v $DIR/logs:/var/www/html/app/cache:rw 

查看更多https://stackoverflow.com/a/37730878/4986182

回答我自己的问题:安装点必须存在于只读卷中,即使它不会被使用。 在安装之前,Docker试图在RO卷中创build上传目录。

当我在/ dev / workspace / wp-content / uploads创build一个空目录时,错误消失了,一切按预期工作。

我接受另一个答案,因为它解决了我的实际问题,但希望我的答案可以帮助有人看到相同的错误信息。