我有一个烧瓶服务在端口5000上运行docker-compose。同样,我有一个不同的go服务在端口8000上运行另一个docker-compose。Golang服务需要调用在5000上运行的烧瓶API。我遇到了麻烦获取go服务来调用flask服务。我尝试添加docker-network但失败了。与单个docker-compose相比,通过不同的docker-compose运行这两种服务的优缺点是什么? (我无法在单个docker-compose中成功运行它们,顺便说一句)。 docker ps running both the containers。
Flask Docker撰写
version: '3' # version of compose format
services:
bidders:
build:
dockerfile: Dockerfile
context: .
volumes:
- .:/usr/src/bidders # mount point
ports:
- 5000:5000 # host:container
去Docker撰写
version: '3'
services:
auctions:
container_name: auctions
build: .
command: go run main.go
volumes:
- .:/go/src/auctions
working_dir: /go/src/auctions
ports:
- "8000:8000"
第三个Nwtwork Docker-compose.yml
#docker-compose.yml
version: '3'
networks:
- second_network
networks:
second_network:
driver: bridge
使用单个docker-compose.yml
,可以更容易地将两个服务放在同一个网络中。那么你在做这件事时遇到的问题是什么?还要确保你的烧瓶和去应用程序都绑定到代码本身的0.0.0.0
而不是127.0.0.1
,这样你就可以从容器外部到达它们。
有两个docker-compose.yml
你有两个选择:
docker network create
创建网络,并在容器的两个文件中定义外部网络有一个类似的问题,你可以从here检查它的答案,包括示例
您可以查看Networking in Compose以获取更多信息