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

时间:2019-08-29 16:24:12

标签: 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容器内的文件夹共享本地文件夹的内容。但是我不知道如何更改音量键来反映这一点。我尝试了类似的映射:

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

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

1 个答案:

答案 0 :(得分:1)

您需要使用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守护程序必须可以访问host_folder上的文件夹