使用Docker将发布的端口限制在特定的容器中

我有两个Docker镜像:

  • 一个tomcat图像,暴露端口8080
  • 一个mysql映像,暴露端口3306

我使用这些图像运行两个容器,将mysql与tomcat链接起来:

docker run -itd -p 3306:3306 --name mysql mysql docker run -itd -p 8080:8080 --link mysql:mysql --name tomcat tomcat 

当我这样做时,与MySQL的tomcat通信工作正常,我的tomcat和mysql容器可以在服务器主机上分别在端口8080和3306上。

现在我想要在服务器主机上closures3306端口,并且只能用于tomcat容器。 我怎样才能做到这一点?

在这种情况下,您可以简单地跳过-p参数,如:

 docker run -itd --name mysql mysql docker run -itd -p 8080:8080 --link mysql:mysql --name tomcat tomcat