我有一个多克网络的端口(运行几个应用程序3000,4200曝光等).我还有一个在同一个Docker网络中运行的nginx容器,它在端口80上托管这些应用程序,具有不同的域名(site1.com,site2.com).
但是现在如果我直接进入应用程序运行的端口(localhost:3000)我也可以这样访问它们.
如何仅将这些端口公开给nginx容器而不是主机系统?
但是现在如果我直接进入应用程序运行的端口(localhost:3000),我也可以这样访问它们.
那是因为你在你的使用-paka --publish命令docker run
说明:
如果要仅在容器之间公开端口,请勿使用-p或--publish仅将它们放在同一个docker网络上.
例:
让我们创建一个新的用户定义网络:
sudo docker network create appnet
Run Code Online (Sandbox Code Playgroud)
让我们为反向代理创建nginx容器,它应该对外界可用,所以我们使用发布.
sudo docker run --name nginx -d --network appnet nginx
Run Code Online (Sandbox Code Playgroud)
现在将您的应用程序放在同一网络中,但不要暴露端口.
sudo docker run --name app1 -d --network appnet <app image name/id>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |