GET(和POST PUT ....)请求在一个容器中使用curl到另一个容器。
$ docker ps
CONTAINER ID IMAGE COMMAND PORTS NAMES
b184219cd8f6 otp_totp "./run.sh" 0.0.0.0:3000->3000/tcp totp_api
c381c276593f service "/bin/sh -c" 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp service
d0add6b1c72e mysql "/tmp/run.sh" 0.0.0.0:3306->3306/tcp mysql
当我向本地
中的curl -X GET http://localhost.3000
发送请求totp_api container
时
totp_api
返回{'status':200}
但我希望在service
容器
与curl -X GET http://localhost:3000
中的totp_api
到service
容器(docker exec -it / bin / bash)类似,totp_api
会将{'status':200}
返回{{ 1}}容器
server
请某些人告诉我一些建议
API /文件夹/搬运工-compose.yml
project_folder
ㄴ- docker-compose.yml # service, mysql container
api_folder
ㄴ- docker-compose.yml # totp_api container
-
version: '3'
services:
totp:
build: .
container_name: totp_api
volumes:
- $PWD:/home
ports:
- "3000:3000"
tty: true
restart: always
networks:
- bridge
networks:
bridge:
driver: bridge
-
$ docker-compose up -d
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4a05be5e600f bridge bridge local
503d0586c7ec host host local
######## ####
727bfc6cc21f otp_bridge bridge local
######## ####
3c19d98d9ca5 otp_default bridge local
答案 0 :(得分:3)
使用docker networking和network commands,您可以确保这些容器属于同一网络。
该唯一网络的副作用是容器A将知道容器B名称:从totp_api
,您可以使用其名称ping {或卷曲service
容器:
ping service
你可以: