1. 程式人生 > 其它 >Docker埠對映和容器互聯

Docker埠對映和容器互聯

一、埠對映實現容器訪問

1.從外部訪問容器應用

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

-P:隨機對映一個49000-49900的埠到內部容器開放的網路埠:

D:\docker_test>docker run -d -P training/webapp python app.py
fe09381970267dfecb92079d0da1047386253d6a8e834d3b6232dd0dc3b7a20c

D:\docker_test>docker ps
CONTAINER ID   IMAGE             COMMAND           CREATED          STATUS          PORTS                     NAMES
fe0938197026   training
/webapp "python app.py" 16 seconds ago Up 11 seconds 0.0.0.0:49153->5000/tcp tender_tesla

通過docker ps看到本機49153埠對映到容器的5000埠。此刻訪問本機的49153埠即可訪問容器內web應用提供的介面。

-p:可以指定要對映的埠,並且在一個指定的埠上只能繫結一個容器。

2.對映所有介面地址

D:\docker_test>docker run -d -p 5000:5000 training/webapp python app.py

可以使用多次-p標記可以繫結多個引數

D:\docker_test>docker run -d -p 5000
:5000 -p 3000:80 training/webapp python app.py

3.對映到指定地址的指定埠

D:\docker_test>docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

4.對映到指定地址的任意埠

D:\docker_test>docker run -d -p 127.0.0.1::5000 training/webapp python app.py

還可以使用upd標記來指定udp埠

D:\docker_test>docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

5.檢視埠對映配置

D:\docker_test>docker port de286751263c
5000/udp -> 127.0.0.1:5000

二、容器互聯

使用--link選項可以讓容器之間安全的進行互動

 1)建立一個新的資料庫容器

D:\docker_test>docker run -d --name db training/postgres

 2)建立一個web容器,並將它連線到db容器

D:\docker_test>docker run -d -P --name web --link db:db training/webapp python app.py

--links格式:--link name:alias,name是要連線的容器名稱,alias是起的別名

Docker通過兩種方式為容器公開連線資訊:

  • 更新環境變數
  • 更新/etc/hosts檔案