【发布时间】:2021-06-24 11:58:41
【问题描述】:
docker 无法创建挂载路径 /foo/logs,该路径在我的 docker-compose 文件中的所有容器之间共享。此错误偶尔会发生,不确定是什么原因造成的。我们现在必须在最新版本的 docker-compose 上重新启动 docker 或机器来解决这个问题
volumes:
- /foo/logs:/app/service/logs
docker-compose -f docker-compose.yaml --env-file=.env.qa up -d
Starting foo-service-container ... error
ERROR: for foo-service-container Cannot start service foo-service: error while creating mount source path '/foo/logs': mkdir /foo: read-only file system
ERROR: for foo-service Cannot start service foo-service: error while creating mount source path '/foo/logs': mkdir /foo: read-only file system
各种容器都有各自的卷设置,如下所示,因此所有容器日志都被假脱机到机器中的单个位置。不知道如何使它健壮
- /foo/logs:/app/foo-service/logs
- /foo/logs:/app/foo-service1/logs
- /foo/logs:/app/foo-service2/logs
- /foo/logs:/app/foo-service3/logs
- /foo/logs:/app/foo-service4/logs
【问题讨论】:
-
使用卷而不是 fs 挂载
-
不是上面的卷,因为它在 /foo/logs 下声明
-
我添加了更多关于其他服务如何假脱机日志的信息
-
对不起,我不清楚。使用 docker 卷而不是 fs 挂载。您有一个文件系统 (fs) 挂载。在所有情况下,最好使用 docker 卷。
-
我认为这与 /foo/logs 作为源(左侧)的绑定无关,因为当 docker 尝试在容器中创建目录时会出现错误。您是否也在某处使用 /foo/logs 作为目标(右侧)?
标签: docker docker-compose