Docker如何发送请求(curl – 获取,张贴)一个容器到另一个容器
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
return {'status':200}
但我想在service
容器中发送请求
像// curl -X GET http://localhost:3000
到totp_api
service
容器( totp_api
exec totp_api
/ bin / bash), totp_api
将返回{'status':200}
到server
容器
project_folder ㄴ- docker-compose.yml # service, mysql container api_folder ㄴ- docker-compose.yml # totp_api container
请一些身体告诉我一些build议
后
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
–
$ 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
–
$ 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" } } ]
使用dockernetworking和networking命令 ,可以确保这些容器是同一networking的一部分。
这个唯一的networking的一个副作用是容器A将知道容器B的名字:从totp_api
,你可以用它的名字来ping或者curlservice
容器:
ping service
您可以:
- 在Docker撰写文件中静态执行(并重新启动新的容器), – 在运行时testing它,将现有的运行容器添加到新的networking