docker埠對映
阿新 • • 發佈:2020-08-01
轉載自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