3 回答

TA貢獻1852條經驗 獲得超7個贊
您只需要確保要互相交談的容器在同一網絡上即可。網絡是一流的docker構造,并不特定于組合。
# front/docker-compose.yml
version: '2'
services:
front:
...
networks:
- some-net
networks:
some-net:
driver: bridge
...
# api/docker-compose.yml
version: '2'
services:
api:
...
networks:
- front_some-net
networks:
front_some-net:
external: true
注意:根據“項目名稱”為您的應用程序網絡指定名稱,該名稱基于其所在目錄的名稱,在這種情況下front_,添加了前綴
然后,他們可以使用服務名稱互相交談。從front您可以做到ping api,反之亦然。

TA貢獻1784條經驗 獲得超7個贊
只是@ johnharris85的一個好答案,當您運行docker compose文件時,default會創建一個“ ”網絡,因此您可以將其作為外部網絡添加到另一個compose文件中:
# front/docker-compose.yml
version: '2'
services:
front_service:
...
...
# api/docker-compose.yml
version: '2'
services:
api_service:
...
networks:
- front_default
networks:
front_default:
external: true
對我來說,這種方法更合適,因為我不擁有第一個docker-compose文件,而是想與之通信。

TA貢獻1827條經驗 獲得超8個贊
從撰寫文件版本3.5開始:
現在可以使用:
version: "3.5"
services:
proxy:
image: hello-world
ports:
- "80:80"
networks:
- proxynet
networks:
proxynet:
name: custom_network
docker-compose up -d將加入一個名為“ custom_network”的網絡。如果不存在,它將被創建!
root@ubuntu-s-1vcpu-1gb-tor1-01:~# docker-compose up -d
Creating network "custom_network" with the default driver
Creating root_proxy_1 ... done
現在,您可以執行以下操作:
version: "2"
services:
web:
image: hello-world
networks:
- my-proxy-net
networks:
my-proxy-net:
external:
name: custom_network
這將創建一個將在外部網絡上的容器。
我在文檔中找不到任何參考,但是它有效!
- 3 回答
- 1 關注
- 3523 瀏覽
添加回答
舉報