docker端口映射
Docker 端口映射即将容器内应用的服务端口映射到本机宿主机器上的端口。
Docker端口映射有两种方法:
- 随机映射
通过-P参数,Docker 会随机映射一个主机端口到内部容器开放的网络端口。例如:
docker run -d -P nginx
docker ps
- 指定端口映射
通过-p参数,可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:
1. IP:HostPort:ContainerPort
2. IP:ContainerPort
3. HostPort:ContainerPort
下面开启一个 nginx 服务,将本机 8080 端口映射到容器的 80 端口:
docker run -d -p 8080:80 nginx
docker ps
给运行中的容器添加映射端口
- 方法一
-
获取容器IP
docker inspect 'container_name' | grep IPAddress
-
iptable转发端口,将容器的8000端口映射到docker主机的8001端口
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
- 方法二
-
提交一个运行中的容器为镜像
docker commit containerid foo/live
-
运行镜像并添加端口
docker run -d -p 8000:80 foo/live /bin/bash