【Docker端口映射】

Docker端口映射即将容器内开放的端口映射到宿主机端口,以实现外部网络的访问.

首先,我们先下载用于测试端口映射的镜像:

[[email protected] ~]# docker pull training/webapp

下载完成后,开始下面的操作.

随机映射端口

执行如下命令将容器的5000端口随机映射到宿主机端口:

[[email protected] ~]# docker -d -P training/webapp python app.py

映射后可查看端口映射信息:

[[email protected] ~]# docker port inspiring_mcnulty
5000/tcp -> 0.0.0.0:32768
# 容器的5000端口被映射到了宿主机的32768端口

查容器内的进程信息:

[[email protected] ~]# docker top b0b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4676                4656                0                   08:20               ?                   00:00:00            python app.py

监视容器日志:

[[email protected] ~]# docker logs -f 9505707c12ad

打开浏览器访问:

映射到指定端口

执行如下命令将容器的5000端口映射到宿主机端口的9000端口:

[[email protected] ~]# docker run -d -p 9000:5000 training/webapp python app.py

好了,像上面的步骤一样,去测试吧.

原文地址:https://www.cnblogs.com/zyk01/p/10176543.html

时间: 2024-10-10 22:16:25

【Docker端口映射】的相关文章

MacOS下的docker端口映射

本人是macos,不能提供docker的运行环境,所以需要用boot2docker,问题就出在这,因为boot2docker其实是使用VBOX虚拟机的,所以实际上外部如果想要访问到容器的话,需要两层层映射,才能访问到. MacOS上的Docker网络结构图 从里到外的顺序是:容器->boot2docker(虚拟机)->物理机 如果只是自己开发使用的话,可以只把容器的端口映射到boot2docker(虚拟机)上就足够了映射方法也很简单,就是网上说的,启动时加上-p参数 docker run -d

docker 端口映射

例一:容器里面安装了httpd服务,让外网如何访问? 首先使用centos镜像新建一个容器,然后在该容器中安装httpd服务,并启动 再把该容器导成一个新的镜像(centos-httpd),然后再使用新镜像创建容器,并指定端口映射 例子:docker commit -m "centos_httpd" -a "aminglinux" 313 centos_httpd:hu 说明:centos_httpd是容器的名字,hu是tag的名字 313 是容器的id docke

docker端口映射与容器互联

端口映射与容器互联 1.端口映射实现容器访问 ① 从外部访问容器应用 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P(大写)标记时,Docker会随机映射一个端口(端口范围在Linux系统使用的端口之外,一般都过万)到内部容器的开放网络端口: [[email protected]_0_9_centos ~]# docker run -d -P tra

docker端口映射设置

摘自 Docker学习笔记(3)-- 如何使用Dockerfile构建镜像 # 映射一个端口 EXPOSE port1 # 相应的运行容器使用的命令 docker run -p port1 image # 映射多个端口 EXPOSE port1 port2 port3 # 相应的运行容器使用的命令 docker run -p port1 -p port2 -p port3 image # 还可以指定需要映射到宿主机器上的某个端口号 docker run -p host_port1:port1 -

Docker端口映射实现

默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器. 容器访问外部实现 容器所有到外部网络的连接,源地址都会被NAT成本地系统的IP地址.这是使用 iptables 的源地址伪装操作实现的. 查看主机的 NAT 规则. $ sudo iptables -t nat -nL ... Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 172.17.0.0/

docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen

现象: [[email protected] ~]# docker run -d -p 9000:80 centos:httpd /bin/sh -c /usr/local/bin/start.shd5b2bd5a7bc4895a973fe61efd051847047d26385f65c278aaa09e4fa31c4d76docker: Error response from daemon: driver failed programming external connectivity on

docker端口映射(三)

一.containerPort Docker run -p 80 -i -t ubuntu /bin/bash 二.hostPort:containerPort Docker run -p 8080:80 -i -t ubuntu /bin/bash 三.ip::containerPort Docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash 四.ip:hostPort:containerPort Docker run -p 0.0.0.0:8080:8

docker实战系列之docker 端口映射错误解决方法

错误: Error response from daemon: Cannot start container web: iptables failed: iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 32797 -j DNAT --to-destination 172.17.0.30:5000 ! -i docker0: iptables: No chain/target/match by that name. 解决办法:重建docker0网络恢

docker 端口映射错误解决方法

#docker run -u root -p 8080:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home jenkins 65cd9915952bbd5885dd9a9a1477e9ce5d46d1f6c952b90a71235539e4e41e0f docker: Error response from daemon: failed to create endpoint confident_mclean on network brid