docker端口映射

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

给运行中的容器添加映射端口

  • 方法一
  1. 获取容器IP
    docker inspect 'container_name' | grep IPAddress

  2. iptable转发端口,将容器的8000端口映射到docker主机的8001端口
    iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

  • 方法二
  1. 提交一个运行中的容器为镜像
    docker commit containerid foo/live

  2. 运行镜像并添加端口
    docker run -d -p 8000:80 foo/live /bin/bash

posted @ 2020-05-20 15:59  浩楠honer  阅读(320)  评论(0编辑  收藏  举报