我正在一个Docker容器上运行Tomcat服务器。在另一个Docker容器上,我希望能够访问该Tomcat服务器。因此,我要做的是使用-p选项将该端口映射到运行Tomcat服务器的Docker容器映射的端口。
简而言之,我有一个Tomcat容器,它是使用类似的东西运行的。
docker run ... -p X:8080 ...
还有其他这样的docker容器
docker run ... -p X:X ...
但是,如果尝试这样做,则会出现“端口已分配”错误。我该如何解决这个问题?
答案 0 :(得分:1)
添加-p X:Y
时,您正在将Y端口从容器映射到主机上的X端口,并使其在主机中可访问。
让我们假设您的tomcat容器在8080:8080
上运行
现在您正在运行另一个容器
您可以通过内部IP访问第二个容器内的tomcat容器。
如果两个容器都在默认网络上。
类似172.0.0.2:8080
您可以通过此
获取分配给容器的内部IPdocker network inspect bridge
或
docker container inspect $id
其中id是容器ID