docker - Centos docker 代理端口 - 防火墙

标签 docker proxy docker-compose centos firewall

我有一些使用 docker-compose up 运行的项目。该项目在端口 4200、后端 3000 和 db 5342 上有前端。当我使用 docker-compose 运行它时,所有这些端口都是公共(public)的。所以我可以(每个人都可以)访问例如后端 https://myserver:3000/api .

如何将 docker-proxy 端口禁用为公共(public)端口?我的解决方案是我有 nginx,用作 myapp.myserver.com 并重定向到本地前端端口 4200 (nginx.conf) - 前端使用后端端口 3000 和后端 5432 - 但这些端口不应该是公共(public)的。公共(public)端口应该只有 80、443、22 (ssh) 等。

查看我的网络统计:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               NASLOUCHÁ  848/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               NASLOUCHÁ  1149/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::9000                 :::*                    NASLOUCHÁ  16995/docker-proxy  
tcp6       0      0 :::5000                 :::*                    NASLOUCHÁ  14069/docker-proxy  
tcp6       0      0 :::5001                 :::*                    NASLOUCHÁ  11557/docker-proxy  
tcp6       0      0 :::8080                 :::*                    NASLOUCHÁ  11402/docker-proxy  
tcp6       0      0 :::80                   :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::22                   :::*                    NASLOUCHÁ  848/sshd            
tcp6       0      0 ::1:25                  :::*                    NASLOUCHÁ  1149/master         
tcp6       0      0 :::443                  :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::8000                 :::*                    NASLOUCHÁ  17006/docker-proxy

最佳答案

您也可以使用 nginx.conf 重定向到后端端口。例如,api.myserver.com将流量路由到后端端口 3000 和 db.myserver.com会将流量路由到端口 3000。所有这些容器都应该在同一个 docker network 上以便于路由。

Nginx 可以控制哪些端口暴露给外界。

这样,您的 nginx 将作为 ingress proxy 服务。 .所有连接都通过 nginx 路由,而世界其他地方则忽略了内部使用的端口。这个想法被用来向全世界开放 Kubernetes 背后的服务。

关于docker - Centos docker 代理端口 - 防火墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298076/

相关文章:

docker - 错误:找不到指定的Dockerfile:Dockerfile-dev

bash - 在 Ubuntu 中设置代理的用户和密码

docker - 使用 Docker Compose 重新启动容器时丢失所有修改

docker - Dockerhub自动构建标签

docker - 私有(private) Docker 注册表无法连接到 Shell 和 Web 管理 UI?

docker - tar ( child ):prometheus-2.8.1.linux-amd64.tar.gz:无法打开:没有这样的文件或目录

proxy - HTMLUnit如何检查代理是否正常工作

python - 在 canopy 中安装包时出现错误'raise locationparseerror<url>.failed to parse'

node.js - 如何在 Docker 中使用 process.argv 运行容器?

服务 env_file 的 Docker-compose 错误