在多个Docker中共享容器定义组成

在我的docker-compose中有一个nginx代理容器定义:

nginx-proxy: image: jwilder/nginx-proxy ports: - "80:80" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro 

我想在多个docker-compose.yml文件中定义这个容器(每个项目一个)。

我怎么能这样做,而不是每次都停止容器(因为正在使用端口80)? 这个想法是:如果没有运行nginx-proxy容器,运行这个,否则使用运行的。

你可以有一个nginx的所有项目。 在这种情况下,你需要在你有nginx服务和使用only_nginx / docker-compose.yml文件

 projectx_service: extends: file: /path_to/only_nginx/docker-compose.yml service: nginx-proxy ... 

这种块在你的每个项目docker – 组成文件。

例:

only_nginx / docker-compose.yml

 nginx-proxy: image: jwilder/nginx-proxy ports: - "80:80" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro 

PROJECT1 /搬运工-compose.yml

 project1_service: extends: file: /path_to/only_nginx/docker-compose.yml service: nginx-proxy ... 

项目2 /搬运工-compose.yml

 project2_service: extends: file: /path_to/only_nginx/docker-compose.yml service: nginx-proxy ...