使用 docker-compose 或 dockerfile 挂载目录(无需复制)

拉法尔·格尼泰茨基

我正在尝试将我的 Owncloud 实例移动到 docker。我有一个具有 120GB 根的“服务器”和指定用于 owncloud 数据的 500GB USB 磁盘。我想出了这样的配置:

    docker-owncloud
├── docker-compose.yml
├── mysql
│   ├── db <- mysql files
│   └── Dockerfile
└── owncloud
    ├── data <- owncloud files (300GB)
    └── Dockerfile

我的码头工人组成:

version: '3'
services:
    owncloud:
        build: owncloud
        ports:
            - 8080:80
        links:
            - mysql
        volumes:
            - ./owncloud/data:/var/www/html
    mysql:
        build: mysql
        environment:
            - MYSQL_ROOT_PASSWORD=XXX
        volumes:
            - ./mysql/db:/var/lib/mysql

mysql dockerfile:

from mysql:5.7.17
ENV LANG=C.UTF-8
ENV TZ=Europe/Warsaw

自己的云码头文件:

FROM owncloud:9.1.4-apache
ENV LANG=C.UTF-8
ENV TZ=Europe/Warsaw

现在,如果我执行“docker-compose build”,则来自 owncloud/data (300GB) 的数据将被复制到新卷,这是不可能的,因为我没有足够的可用磁盘空间。

有没有办法在不复制数据的情况下使用 docker-compose 或 dockerfile 挂载这两个目录?有没有其他已知的方法来处理这种情况?

我花了超过 3 个小时发现这是不可能的,但我不敢相信情况确实如此。预先感谢您的回答。

构建时,docker 会将当前目录和子目录中的所有文件发送到守护进程。你知道这是上下文。

您有 2 个选择:

  • 将数据目录移到构建图像的目录结构之外。
  • 创建一个 .dockerignore 文件并添加数据目录

https://docs.docker.com/engine/reference/builder/#usage

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Dockerfile 复制代码或使用 docker-compose 安装卷

使用Docker compose传递Dockerfile的参数

Docker:除了 docker-compose.yml 之外,如何使用 Dockerfile

使用父目录和dockerfile进行构建时docker-compose生成错误

docker-compose:对多个服务使用多个Dockerfile

docker-compose build 根据使用次数构建每个 Dockerfile

Docker:使用docker-compose复制文件和目录

Dockerfile无法复制&Docker-compose卷无法与容器同步

Docker-compose 构建应用程序并复制由 dockerfile 指定的非指定目录内容

Docker-compose 挂载目录

Dockerfile与docker-compose VOLUME

Docker:Dockerfile与docker-compose.yml

如何从Docker,Dockerfile和Docker Compose开始?

docker在dockerfile和docker-compose.yml中使用通用配置

Docker-compose可以工作,只是使用Dockerfile的Docker-不能。为什么?

如果我运行docker-compose up,我是否需要目录中的Dockerfile以及docker-compose.yml文件?

容器在使用Dockerfile时起作用,但在使用docker-compose.yml时不起作用

Docker Compose与Dockerfile-哪个更好?

Dockerfile没有从docker compose传递参数

使用Dockerfile安装Docker

通过docker-compose文件版本“ 3”挂载主机目录,然后重新使用数据量

使用 docker-compose 在派生映像中创建的错误挂载目录

使用docker-compose将WordPress命名卷挂载到NGINX容器的子目录中

Docker-compose无法运行jar文件但可与Dockerfile一起使用

当我使用build命令时,Docker compose会忽略我的Dockerfile

无法使用docker-compose在Dockerfile中运行rake db:create

如果我使用的是docker-compose.yml,为什么我仍然需要一个Dockerfile?

如何在Dockerfile中使用docker-compose.yml中的环境变量?

Spotify dockerfile-maven-plugin如何使用“ docker-compose build”?