时间:2021-05-19
一、概念
Docker 端口映射即映射容器内应用的服务端口到本机宿主机器。
二、实现
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射。
1. 随机映射
使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务:
$ docker run -d -P nginxe93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc$ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe93349d53911 nginx "nginx -g 'daemon ..." 11 seconds ago Up 9 seconds 0.0.0.0:32769->80/tcp zen_kirch使用 docker ps 看到,本地主机的 32769 端口被映射到了容器的 80 端口,这时我们通过本机浏览器访问 http://localhost:32769 就会出现 nginx 欢迎页面。
2. 指定端口
使用 -p 参数时,可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:
下面开启一个 nginx 服务,将本机 8080 端口映射到容器的 80 端口:
$ docker run -d -p 8080:80 nginx23e725098712d061a1382f33d6fe54da23ae37597a62f8debdd3731b5f9cc4b9$ $ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES23e725098712 nginx "nginx -g 'daemon ..." 8 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp frosty_ptolemy使用 docker ps 看到,本地主机的 8080 端口被映射到了容器的 80 端口,这时我们通过本机浏览器访问 http://localhost:8080 就会出现 nginx 欢迎页面。
三、查看映射端口
使用 docker port 命令来查看当前映射的端口配置,也可以查看到绑定的地址。命令格式如下:
$ docker port CONTAINER [PRIVATE_PORT[/PROTO]]容器有自己的内部网络和 IP 地址,可以使用 docker inspect + 容器ID 获取容器的具体信息。
DOCKER 给运行中的容器添加映射端口
方法1
1、获得容器IP
将container_name 换成实际环境中的容器名
2、 iptable转发端口
将容器的8000端口映射到docker主机的8001端口
复制代码 代码如下:
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
方法2
1.提交一个运行中的容器为镜像
docker commit containerid foo/live2.运行镜像并添加端口
docker run -d -p 8000:80 foo/live /bin/bash以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近在学习docker,今天了解了Docker端口映射,给自己留个小笔记,也分享给大家为什么要端口映射?在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部
实验介绍今天在学习Docker容器的时候,在虚拟机中创建并开启了一个nginx的container,然后通过端口映射的方法,即将container的80端口映射
前言在dockerrun创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当dockersta
外部访问容器容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P或-p参数来指定端口映射。-P标记时Docker会随机映射一个49000~499
解决Windows10下无法对docker容器进行端口访问(端口映射的问题)在Windows10系统服务器中安装了docker和docker-compose并尝