docker 端口映射 有点蒙圈 谁给解释一下

 mobiledu2502852753 发布于 2022-10-26 13:51

docker 端口映射 有点蒙圈 谁给解释一下

3 个回答
  • 不知道所谓的“蒙圈”具体是指什么。
    简单的说类似于NAT的原理,如果需要宿主机网络能够访问到容器提供的服务,需要将容器的端口暴露在宿主机网络中。
    常用语法是在运行"都docker run"时带上参数"-p host_port:container_port"。

    2022-11-12 01:39 回答
  • 端口映射:
    就是选择一个你本机的端口映射到你的容器的一个端口,这样若有请求来到,访问你本机的那个被映射的端口,这个时候就会将请求转发到容器的那个端口,依靠容器里的服务来处理请求。

    为什么要有端口映射?
    你的本机IP是个公网ip,例如1.2.3.4;但是本机的容器的ip是个虚拟ip,例如172.17.0.2。外界是没法直接访问你的容器的服务的,这个时候就通过访问本机的端口来达到使用容器中服务的目的。

    2022-11-12 01:39 回答
  • 容器间互相访问需在容器创建时使用--link参数,并且最好被连接的容器已经命名过。

    docker run --name mysql .......
    docker run --name php --link mysql .......
    docker run --name nginx --link php .......

    以这种方式启动时,只需要在程序内使用对应的容器名即可访问相应的服务。
    例如 fastcgi_pass php:9000;

    如果是对外暴露端口,需要通过-p或者-P参数,最好使用-p。
    docker run --name nginx -p 80:80 -p 443:443 .......
    这样浏览器就能访问到这台服务器提供的Web服务了。

    2022-11-12 01:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有