我正在测试同一个网络“myNetwork”中的两个容器(tomcat和busybox)是否能够相互通信。
我跟着台阶走:
docker network create -d bridge myNetwork
docker run -it --name myTomcat --net=myNetwork tomcat
docker run -it --net=container:myTomcat busybox
docker container exec -it {busybox_container_id}
/# wget localhost:8080
这里我得到了一个错误wget: server returned error: HTTP/1.1 404
我想知道为什么我不能从busybox容器连接到tomcat容器,即使我在同一个网络中配置了这两个容器。所以我做了如下检查:
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容器似乎没有显示任何网络信息。我很感谢你的帮助
发布于 2021-10-25 08:42:54
使用localhost总是指向当前的机器。在Docker容器中使用它将针对当前容器。
如果您需要您的容器在Docker网络中进行通信,您可以通过使用容器名称作为主机名来使用嵌入式DNS服务器。在您命名Tomcat容器myTomcat时,您应该能够这样做:
wget myTomcat:8080https://stackoverflow.com/questions/69704765
复制相似问题