Docker埠對映和容器互聯
阿新 • • 發佈:2021-11-14
一、埠對映實現容器訪問
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檔案