加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

http – Docker如何将一个容器发送请求(curl – get,post)到

发布时间:2020-12-16 03:52:45 所属栏目:安全 来源:网络整理
导读:GET(和POST PUT .)请求在一个容器中使用curl到另一个容器. $docker ps CONTAINER ID IMAGE COMMAND PORTS NAMESb184219cd8f6 otp_totp "./run.sh" 0.0.0.0:3000-3000/tcp totp_apic381c276593f service "/bin/sh -c" 0.0.0.0:8000-8000/tcp,0.0.0.0:9000-900

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容器时

totp_api返回{‘status’:200}

但我想在服务容器中发送请求

比如// curl -X GET http:// localhost:3000到服务中的totp_api容器(docker exec -it / bin / bash),totp_api会将{‘status’:200}返回给服务器容器

project_folder
             ?- docker-compose.yml # service,mysql container
api_folder
         ?- docker-compose.yml # totp_api container

请一些人告诉我一些建议

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"
        }
    }
]
使用docker networking和network commands,您可以确保这些容器属于同一网络.

该唯一网络的副作用是容器A将知道容器B名称:从totp_api,您可以使用其名称ping或卷曲服务容器:

ping service

您可以:

>在docker compose文件中静态执行(并重新启动新容器),– 在运行时测试它,将现有的运行容器添加到新网络

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读