首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在与已在运行的容器相同的网络中运行码头容器

在与已在运行的容器相同的网络中运行码头容器
EN

Stack Overflow用户
提问于 2021-10-25 08:18:20
回答 1查看 343关注 0票数 0

我正在测试同一个网络“myNetwork”中的两个容器(tomcat和busybox)是否能够相互通信。

我跟着台阶走:

  1. 创建一个网络,“myNetwork”

docker network create -d bridge myNetwork

  1. 在“myNetwork”中运行“myTomcat”容器

docker run -it --name myTomcat --net=myNetwork tomcat

  1. 在与'myTomcat‘网络相同的网络中运行'busybox’容器。即“myNetwork”

docker run -it --net=container:myTomcat busybox

  1. 测试是否可以使用wget命令从busybox容器访问tomcat容器

docker container exec -it {busybox_container_id}

/# wget localhost:8080

这里我得到了一个错误wget: server returned error: HTTP/1.1 404

我想知道为什么我不能从busybox容器连接到tomcat容器,即使我在同一个网络中配置了这两个容器。所以我做了如下检查:

代码语言:javascript
复制
    docker network inspect myNetwork
[
  {
    "Name": "myNetwork",
...
    "Containers": {
      "43ba4d7ae27753f8085f5697cf6afc4eb872dbdbd2cf18138e3c6e3f90d54d15":{
        "Name": "myTomcat",
        "EndpointID":"03a98...",
...
        "IPv4Address": "172.20.0.2/16",
        "IPv6Address": ""
    }
 }
]
 
    docker inspect {tomcat_container_id}
[
...
  "Networks": {
    "myNetwork": {
      "NetworkID": "54bf...",
      ...
      "Gateway": "172.20.0.1",
      "IPAddress": "172.20.0.2"
      ...
    }
...
]
    docker inspect {busybox_container_id}
[
...
  "NetworkSettings": {
    "Bridge": "",
    ...
    "Networks": {}
  }
...
]

tomcat似乎在“myNetwork”中,但是检查busybox容器似乎没有显示任何网络信息。我很感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2021-10-25 08:42:54

使用localhost总是指向当前的机器。在Docker容器中使用它将针对当前容器。

如果您需要您的容器在Docker网络中进行通信,您可以通过使用容器名称作为主机名来使用嵌入式DNS服务器。在您命名Tomcat容器myTomcat时,您应该能够这样做:

代码语言:javascript
复制
wget myTomcat:8080
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69704765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档