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

我试图分享代码从主机到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”必须是映射而不是string。

我该如何让./code -compose知道,我需要./codenginx和php containers共享?

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

我想你在这里有两个select。 由于您在两个容器上共享代码映射到/ var / www / html。

选项1在卷中设置/ var / www / html地图:

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

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

选项2

 volumes: php_data: ./code:/