1. 程式人生 > 實用技巧 >docker埠對映

docker埠對映

轉載自https://www.cnblogs.com/wholj/p/10551999.html

docker容器在啟動的時候,如果不指定埠對映引數,在容器外部是無法通過網路來訪問容器內的網路應用和服務的。

埠對映通過-P和-p引數來實現

一、-P將容器內部開放的網路埠隨機對映到宿主機的一個埠上;

二、-p指定要對映的埠,一個指定埠上只可以繫結一個容器;支援的格式如下:

IP:HOSTPORT:CONTAINERPORT:指定ip、指定宿主機port、指定容器port

  • 適用於對映到指定地址的指定埠
    eg:將容器的5000埠對映到指定地址127.0.0.1的5000埠上:
docker run -it -d -p 127.0.0.1:5000:5000 docker.io/centos:latest /bin/bash

IP::CONTAINERPORT:指定ip、未指定宿主機port(隨機)、指定容器port

  • 適用於對映到指定地址的任意埠
    eg:將容器的4000埠對映到127.0.0.1的任意埠上:
docker run -it -d -p 127.0.0.1::4000 docker.io/centos:latest /bin/bash


注:會將容器的ip127.0.0.1和4000埠,隨機對映到宿主機的一個埠上。

HOSTPORT:CONTAINERPORT:未指定ip、指定宿主機port、指定容器port

  • 適用於將容器指定埠指定對映到宿主機的一個埠上(對映所有介面地址)
    eg:將容器的80埠對映到宿主機的8000埠上:
docker run -itd -p 8000:80 docker.io/centos:latest /bin/bash


注:上邊的操作預設會繫結本地所有介面上的所有地址。

對映訪問示例


將容器的80埠對映到宿主機的8000埠上,並在容器中安裝httpd服務,而後在宿主機上訪問http://IP:HOSTPORT,即訪問http://192.168.101.222:8000/,結果如下:

檢視對映埠配置

命令:

docker port CONTAINER_ID