【问题标题】:Docker container not writing to volumeDocker 容器未写入卷
【发布时间】:2017-02-03 00:10:39
【问题描述】:

我想用 Docker 和 Docker-Compose 设置 ownCloud。为了实现这一点,我有一个带有 3 个容器及其卷的 docker-compose.yml。

version: '2'

  services:
    nginx:
      build: ./nginx
      networks:
        - frontend
        - backend
      volumes:
        - owncloud:/var/www/html
    owncloud:
      build: ./owncloud
      networks:
        - backend
      volumes:
        - owncloud:/var/www/html
        - data:/data
    mysql:
      build: ./mariadb
      volumes:
        - mysql:/var/lib/mysql
      networks:
        - backend

  volumes:
    owncloud:
      driver: local
    data:
      driver: local
    mysql:
      driver: local

  networks:
    frontend:
      driver: bridge
    backend:
      driver: bridge

我也试过没有数据量。 ownCloud 无法写入 /data 或没有此卷到 /var/www/html/data。日志仅在我访问 ownCloud 时显示时间戳。从 data:/data 更改为托管卷 /var/ownclouddata:/data 不会产生任何差异。

每个 Dockerfile 文件只有一行:FROM:image

我尝试添加 RUN mkdir /data,但没有解决任何问题。

【问题讨论】:

    标签: docker docker-compose docker-volume


    【解决方案1】:

    您需要像这样在 Dockerfile 中挂载卷。

    VOLUME /data
    

    稍后在您的 docker-compose 文件中,您可以像之前一样使用命名卷,也可以像这样简单地使用它。

    /mnt/test:/data
    

    这里 /mnt/test 是您的主机卷路径,/data 是您的 docker 容器路径。

    希望对你有帮助!

    【讨论】:

    • 这里不需要VOLUME 指令;您可以在没有它的情况下绑定挂载主机目录,并且在 Dockerfile 中使用它时会产生一些令人困惑的副作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    相关资源
    最近更新 更多