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
Run Code Online (Sandbox Code Playgroud)
当我请求发送curl -X GET http://localhost.3000
给totp_api container
本地
totp_api
返回 {'status':200}
但我希望在service
容器中发送请求
像// curl -X GET http://localhost:3000
到totp_api
在容器service
(搬运工EXEC -it /斌/庆典),totp_api
将返回{'status':200}
至server
容器
project_folder
?- docker-compose.yml # service, mysql container
api_folder
?- docker-compose.yml # totp_api container
Run Code Online (Sandbox Code Playgroud)
请一些人告诉我一些建议
API /文件夹/搬运工-compose.yml
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
Run Code Online (Sandbox Code Playgroud)
-
$ 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
Run Code Online (Sandbox Code Playgroud)
-
$ docker network inspect otp_bridge
[
{
"Name": "otp_bridge",
"Id": "727bfc6cc21fd74f19eb7fe164582637cbad4c2d7e36620c1c0a1c51c0490d31",
"Created": "2017-12-13T06:12:40.5070258Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"02fa407062cdd5f6f368f2d17c5e68d2f9155d1d9b30c9edcbb2386a9ded648a": {
"Name": "totp_api",
"EndpointID": "860c47da1e70d304399b42917b927a8cc6717b86c6d1ee6f065229e33f496c2f",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "bridge",
"com.docker.compose.project": "otp"
}
}
]
Run Code Online (Sandbox Code Playgroud)
使用docker 网络和网络命令,您可以确保这些容器是同一网络的一部分。
该唯一网络的副作用是容器 A 将知道容器 B 的名称:从totp_api
,您可以service
使用其名称ping 或 curl容器:
ping service
Run Code Online (Sandbox Code Playgroud)
你可以:
归档时间: |
|
查看次数: |
7253 次 |
最近记录: |