Docker:如何在容器内挂载本地文件夹?

标签 docker docker-compose volumes

我需要与正在运行的 Docker 容器共享 OSX 计算机上的文件夹,但我找不到具体操作方法。 这是一个有效的 Docker-compose 文件:

version: '2'
services:
mariadb:
  image: 'bitnami/mariadb:10.3'
  environment:
    - MARIADB_ROOT_PASSWORD=bitnami
    - MARIADB_USER=bn_moodle
    - MARIADB_DATABASE=bitnami_moodle
    - ALLOW_EMPTY_PASSWORD=yes
  volumes:
    - 'mariadb_data:/bitnami'
phpmyadmin:
  image: 'bitnami/phpmyadmin:4'
  ports:
    - '8081:80'
    - '4430:443'
  depends_on:
    - mariadb
  volumes:
    - 'phpmyadmin_data:/bitnami'
moodle:
  image: 'bitnami/moodle:3'
  environment:
    - MARIADB_HOST=mariadb
    - MARIADB_PORT_NUMBER=3306
    - MOODLE_DATABASE_USER=bn_moodle
    - MOODLE_DATABASE_NAME=bitnami_moodle
    - ALLOW_EMPTY_PASSWORD=yes
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - 'moodle_data:/bitnami'
  depends_on:
    - mariadb
volumes:
  mariadb_data:
    driver: local
  phpmyadmin_data:
    driver: local
  moodle_data:
    driver: local

此文件正确启动 3 个 Docker 容器,1 个用于 Moodle,1 个用于 MariaDb,1 个用于 Phpmyadmin。

我现在需要做的是将本地文件夹的内容与 Moodle 容器内的文件夹共享。但我不知道如何更改音量键来反射(reflect)这一点。我尝试使用如下映射:

moodle_data:
- moodle_data:/Users/macbook/Code/Php/moodle-docker/moodle/Users/macbook/Code/Php/moodle-docker/moodle

但是它不起作用..我在这里做错了什么?预先感谢任何可以提供帮助的人!

最佳答案

您需要使用host_folder:container_folder 将host_folder 与container_folder 映射。正如评论中提到的:

moodle:
  image: 'bitnami/moodle:3'
  environment:
    - MARIADB_HOST=mariadb
    - MARIADB_PORT_NUMBER=3306
    - MOODLE_DATABASE_USER=bn_moodle
    - MOODLE_DATABASE_NAME=bitnami_moodle
    - ALLOW_EMPTY_PASSWORD=yes
  ports:
    - '80:80'
    - '443:443'
  volumes: 
    - /Users/macbook/Code/Php/moodle-docker/moodle:/bitnami/gatto
    - moodle_data:/bitnami
  depends_on:
    - mariadb

记住:docker daemon 必须可以访问 host_folder 上的文件夹

关于Docker:如何在容器内挂载本地文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714290/

相关文章:

mongodb - 使用 Docker-Compose 在 MongoDB 上导入数据

docker - 本地MQTT mosquitto实例获得连接ECONNREFUSED 127.0.0.1:1883

kubernetes - Kubernetes难题:从文件(装入的卷)填充环境变量

deployment - 重启与在 Docker 上构建容器

Ruby docker-api 挂载卷

django - 在 Docker 上使用 Nginx、uWSGI 和 Postgres 配置 Django

azure - 带有 azureFile 的 Kubernetes 持久卷

ruby - 从Rails应用程序调用Chef更新命令时出现Encoding::UndefinedConversionError

docker-compose 等效于 docker run 参数,例如 compose 文件中的 "--foo bar"?

windows - Docker for Windows : volumes are empty