docker(8):docker容器的端口映射

cker的端口映射,能保证在外部网络 访问 同一设备上不同容器时候 不会因为端口问题产生冲突。

docker 可将容器对外提供服务的端口映射到 host 的某个端口,外网通过该端口访问容器。容器启动时通过-p参数映射端口:

指定映射

  • -p hostPort:containerPort      #0.0.0.0:80
  • -p ip:hostPort:containerPort   #指定宿主机IP地址,例如192.168.0.136:80,多个容器都想使用80端口,添加多个IP
  • -p ip::containerPort           #随机端口 ,32768端口,内核参数决定的net.ipv4.ip_local_port_range = 32768    60999
  • -p hostPort:containerPort:udp #udp
  • -p 81:80 –p 443:443              #指定多个

默认

[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-136 ~]# docker run --name web1 -d -p 80:80 nginx
9d2300fd85bed6f22dec3cf7ca4cab0c1f3e753e34bdf0b6dcc152246cbecd39
[root@docker-136 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6862/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      27641/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      6862/sshd           

指定端口

[root@docker-136 ~]# ifconfig ens33:1 192.168.0.199/24  up
[root@docker-136 ~]# ifconfig ens33:1
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.199  netmask 255.255.255.0  broadcast 192.168.0.255ether 00:0c:29:51:f5:dd  txqueuelen 1000  (Ethernet)[root@docker-136 ~]#
[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-136 ~]# docker run --name web2 -d -p 192.168.0.199:80:80 nginx
e765cce89d8041a33b832875476ad5114d1c6521d1e8c23a4e96c31ef6ab4b3d
[root@docker-136 ~]# docker run --name web1 -d -p 192.168.0.136:80:80 nginx
234d7356881bc1717d30e5bd639b2a607bf67933faad0106ee8d9d0a0a06cd1e
[root@docker-136 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.0.136:80        0.0.0.0:*               LISTEN      28469/docker-proxy
tcp        0      0 192.168.0.199:80        0.0.0.0:*               LISTEN      28370/docker-proxy
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6862/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      6862/sshd
[root@docker-136 ~]#

随机

[root@docker-136 ~]# docker run --name web3 -d -p 192.168.0.136::80 nginx
d13119eb08088b264a0727d1afd4d5961e9309ba4f28f507f5809666cccde27f
[root@docker-136 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.0.136:80        0.0.0.0:*               LISTEN      28469/docker-proxy
tcp        0      0 192.168.0.199:80        0.0.0.0:*               LISTEN      28370/docker-proxy
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6862/sshd
tcp        0      0 192.168.0.136:32768     0.0.0.0:*               LISTEN      28877/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      6862/sshd
[root@docker-136 ~]#

多个端口

[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
d13119eb0808        nginx               "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes        192.168.0.136:32768->80/tcp   web3
[root@docker-136 ~]#
[root@docker-136 ~]# docker run --name web4 -d -p 80:80 -p 443:443 nginx
4927f0ef45ab2741d894a5ae5e5ccec373970a477c07bf2f9f2e9fb0ddd9f018
[root@docker-136 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                      NAMES
4927f0ef45ab        nginx               "nginx -g 'daemon of…"   3 seconds ago       Up 1 second         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   web4
d13119eb0808        nginx               "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes        192.168.0.136:32768->80/tcp                web3
[root@docker-136 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6862/sshd
tcp        0      0 192.168.0.136:32768     0.0.0.0:*               LISTEN      28877/docker-proxy
tcp6       0      0 :::80                   :::*                    LISTEN      29287/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      6862/sshd
tcp6       0      0 :::443                  :::*                    LISTEN      29276/docker-proxy
[root@docker-136 ~]#

转载于:https://www.cnblogs.com/wangxu01/articles/11316480.html

docker(8):docker容器的端口映射相关推荐

  1. docker 改host_Docker容器修改端口映射

    对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置文件修改docker容器端口映射 1.使用docker ps -a命令找到要修改容器的CONTAINER ...

  2. Docker添加或者更改容器的端口映射

    QUESTION:Docker添加或者更改容器的端口映射? ANSWER: 初学Docker容器,按照教程的基本命令,拉取创建了几个容器,都是在一开始新建的时候 docker  run -p 指定对应 ...

  3. 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

    解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 参考文章: (1)解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 (2)https://www.cnblogs. ...

  4. 解决windows系统无法对docker容器进行端口映射的问题

    解决windows系统无法对docker容器进行端口映射的问题 参考文章: (1)解决windows系统无法对docker容器进行端口映射的问题 (2)https://www.cnblogs.com/ ...

  5. Docker容器修改端口映射

    Docker容器修改端口映射 https://zhuanlan.zhihu.com/p/94949253 对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置 ...

  6. win10 docker 容器修改端口映射

    通常容器生成后是无法通过docker界面或docker命令去修改端口映射的,以下是通过修改配置文件的方式实现: 第一步:在powershell执行以下命令找到容器hash值 docker inspec ...

  7. 解决Windows下无法对docker容器进行端口映射的问题

    解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...

  8. docker容器增加端口映射最佳实践(修改配置文件方式)

    前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...

  9. Docker容器设置端口映射的方法

    概念 Docker 端口映射即映射容器内应用的服务端口到本机宿主机器. #实现 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射. 1.随机映射 ...

最新文章

  1. BS-GX-016基于SSM实现教材管理系统
  2. 精通python设计模式-精通Python设计模式
  3. CCNA-(9)-思科交换机特点
  4. Swoole跨域问题解决
  5. 四、用户、群组和权限(未完结)
  6. applicationContext配置文件模板1
  7. 根据选择计算Mask值
  8. Linux 5.10 LTS 发布,支持到 2026 年
  9. android google地图点聚合样式修改
  10. 姆町网络验证带壳内存取密钥
  11. 线性代数 第二章 矩阵 知识点总结(Jeff自我感悟)
  12. 关于《训练指南》中的“翻棋子游戏”
  13. 指令系统相兼容的计算机称为系列机,第4章指令系统.ppt
  14. word2013自动生成目录的时候,如何调整目录格式?
  15. 接口文档与接口文档管理工具
  16. 安卓layout布局三等分
  17. 一台服务器​最大并发 tcp 连接数多少?65535?
  18. linux设置用户默认桌面背景,linux 修改桌面背景
  19. android 厨房的使用方法,安卓ROM厨房定制工具使用教程
  20. clcl.bz index.php,BZPHP

热门文章

  1. web3j用于solidity智能合约maven插件
  2. Pr_cc 学习笔记(九)画中画
  3. 魅族 android6.0,大屏又好用的 MEIZU 魅蓝MAX及Flyme6.0初体验
  4. android 8.1评测,支持Html5标准 UC浏览器8.1安卓版抢先评测
  5. 计算机中收藏夹中的桌面怎么找,电脑浏览器收藏夹保存在哪里
  6. 用php输入边长求正方形面积,求正方形的面积
  7. 深度学习AI美颜系列
  8. 第五届 蓝桥杯 海盗分金币 JAVA
  9. python的turtle库画笔和填充颜色的控制方式
  10. js导出excel(带边框以及文本样式)