首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx移除docker容器上暴露的端口80/tcp,只留下8080

Nginx移除docker容器上暴露的端口80/tcp,只留下8080
EN

Stack Overflow用户
提问于 2021-01-22 09:32:41
回答 1查看 701关注 0票数 1

我在files/etc/nginx/conf.d/default.conf中设置了一个Nginx来侦听端口8080,方法是将listen 8080;添加到我仅有的一个服务器块中。

我用docker运行Nginx,用-p 8080:8080运行

我想问一下为什么docker ps命令的端口下会有80/tcp,如下所示?

代码语言:javascript
复制
STATUS         NAMES               IMAGE                       PORTS
Up 6 minutes   docker-nginx        docker-nginx:1.17.8         80/tcp, 0.0.0.0:8080->8080/tcp

命令docker inspect docker-nginx显示:

代码语言:javascript
复制
 "HostConfig": {
        "PortBindings": {
            "8080/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "8080"
                }
          

"Config": {
        "ExposedPorts": {
            "80/tcp": {},
            "8080/tcp": {}
        },

    "NetworkSettings": {
        (...)
        "Ports": {
            "80/tcp": null,
            "8080/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "8080"
                }
            ]
        },

我的目的是让Nginx只监听8080,并且在任何其他端口下都不能访问,即使是属于Nginx所在网络的其他容器也无法访问。如何让Nginx不暴露80/tcp端口?

我使用的是来自官方nginx:1.17.8镜像的构建。

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 19:57:50

Nginx镜像的Dockerfile应该包含端口80的expose指令。在Nginx网站上,你应该能够找到你正在使用的镜像的dockerfile,并且应该有expose 80命令。

如果您不想暴露端口80,即使您使用的是端口8080也不会使用它,那么删除或注释掉Dockerfile文件中的expose 80,然后构建镜像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65838174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档