详解 Docker 端口映射|5种常见的端口映射方式
2024-12-02157
概述
docker的ip是基于本地系统的,并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些ip在容器每次启动的时候都会改变。
Docker解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法。Docker通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,Docker提供了这种连接机制。
docker架构
自动映射端口-P使用时需要指定--expose选项,指定需要对外提供服务的端口
$sudodockerrun-t-P--expose22--nameserverubuntu:14.04
使用dockerrun-P自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中(49000..49900)自动选择,你可以通过dockerps、dockerinspectcontainer_id或者dockerportcontainer_idport确定具体的绑定信息。
绑定端口到指定接口基本语法
$sudodockerrun-p[([host_interface:[host_port]])|(host_port):]container_port[/udp]
默认不指定绑定ip则监听所有网络接口。
绑定TCP端口
B$::8080imagecmdBindTCPport8080ofthecontainertoadynamicallyallocatedTCPportonallavailableinterfaces$sudodockerrun-p8080
绑定UDP端口
dockerrun-P-itubuntu/bin/bash2.映射宿主机随机端口到容器指定端口
-pcontainerPort(-p表示–publish=[])
dockerrun-p8080:80-itubuntu/bin/bash
4.指定容器IP和容器端口,宿主机端口随机映射
ip::containerPort
:8080:80-itubuntu/bin/bash
觉得有用的多多转发哦!