如何使用命名卷将数据从主机共享到容器?

时间:2017-04-06 09:16:44

标签: docker docker-compose

我尝试将代码从主机共享到phpnginx个容器。这是我的docker-compose.yml

version: "3"
services:
  php:
    image: php:fpm
    container_name: php
    ports:
      - 9000:9000
    volumes: 
      - php_data:/var/www/html/

      # configs
      - ./php/config:/usr/local/etc/php

  nginx:
    image: nginx 
    ports:
      - 80:80
    volumes:
      - php_data:/var/www/html

      # logs
      - ./nginx/logs:/var/log/nginx

      # configs
      - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf:ro
      - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf:ro

volumes:
  php_data:
    ./code

运行docker-compose up时出错:

  

错误:在文件' ./ docker-compose.yml',卷' php_data'必须是一个   映射不是字符串。

如何知道make docker-compose,我需要./code和php nginx分享containers

1 个答案:

答案 0 :(得分:0)

Docker说它需要一个映射,所以你需要在你的卷中设置类似./code:{map}的东西

我认为你有2种选择。由于您将代码映射共享到两个容器上的/ var / www / html。

选项1 在卷中设置/ var / www / html映射:

volumes:
  php_data:
    ./code:/var/www/html

然后将/ var / www / html更改为容器中的/。

选项2

volumes:
  php_data:
    ./code:/