Docker 網路功能介紹

2021-08-11 11:37:20 字數 2280 閱讀 6359

docker 允許通過外部訪問容器或容器互聯的方式來提供網路服務。

docker 在 1.13 版本引進了新的管理命令(management commands)

docker 1.13+ 推 薦使用 docker network 子命令來管理 docker 網路。

容器中可以執行一些網路應用,要讓外部也可以訪問這些應用,可以通過 -p 或 -p 指定埠對映。

當使用 -p 標記時,docker 會隨機對映乙個 49000~49900 的埠到內部容器開放的網路埠。

$ docker run -d

$ docker ps -l

同樣的,可以通過 docker logs 命令來檢視應用的資訊。

$ docker logs -f nostalgic_morse
-p 則可以指定要對映的埠,並且,在乙個指定埠上只可以繫結乙個容器。支援的格式有

使用 hostport:containerport 格式本地的 5000 埠對映到容器的 5000 埠:

$ docker run -d

-p

此時缺省會繫結本地所有介面上的所有位址。

可以使用 ip:hostport:containerport 格式指定對映使用乙個特定位址,比如 localhost 位址 127.0.0.1

$ docker run -d

-p127.0

.0

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

$ docker run -d

-p127.0

.0

使用 docker port 來檢視當前對映的埠配置,也可以檢視到繫結的位址

$ docker port nostalgic_morse 5000
注意:

$ docker run -d \

-p 5000

:5000 \

-p 3000

:80 \

如果你之前有 使用經驗,你可能已經習慣了使用 引數來使容器互聯。 隨著 docker 網路的完善,強烈建議大家將容器加入自定義的 docker 網路來連線多個容器。 容器的連線(linking)系統是除了埠對映外,另一種跟容器中應用互動的方式。 該系統會在源和接收容器之間建立乙個隧道,接收容器可以看到源容器指定的資訊。

下面先建立乙個新的 docker 網路。

$ docker network create -d bridge my-net
建立乙個容器並連線到新建的 my-net 網路

$

docker

run-it-

-rm--

name

busybox1--

netmy

-net

busybox

sh

開啟新的終端,再新建乙個容器,加入 my-net 網路

$

docker

run-it-

-rm--

name

busybox2--

netmy

-net

busybox

sh

檢視容器

$ docker ps
下面通過 ping 來證明 busybox1 容器和 busybox2 容器建立了互聯關係。

在 busybox1容器輸入以下命令。

/ # ping busybox2

ping busybox2 (172.19

.0.3): 56 data bytes

64bytes

from

172.19

.0.3: seq=0 ttl=64

time=0.072 ms

用 ping 來測試連線 busybox2 容器,它會解析成 172.19.0.3。

同理在 busybox2 容器執行 ping busybox1 ,也會成功連線到。

/ # ping busybox1

ping busybox1 (172.19

.0.2): 56 data bytes

64bytes

from

172.19

.0.2: seq=0 ttl=64

time=0.064 ms

這樣,busybox1 容器和 busybox2 容器建立了互聯關係。

docker實戰之Docker的網路介紹

預設情況下啟動的docker容器,都是使用 bridge,docker安裝時建立的橋接網路,每次docker容器重啟時,會按照順序獲取對應的ip位址,這個就導致重啟下,docker的ip位址就變了 使用 network none docker 容器就不會分配區域網的ip 使用 network hos...

docker容器的五種網路介紹

容器如果離開了網路,就是乙個密閉的盒子。docker 初期的網路功能並不是很完善,隨著不斷的演化,目前 docker 的網路已經大大加強。docker自帶的網路 當docker安裝成功後,就會建立三種網路。可以使用docker network ls進行檢視 root localhost docker...

Docker 多主機網路通訊詳細介紹

docker多主機網路通訊詳解 docnoibhvcker支援多主機網路通訊功能,可以通過命令列建立多主機通訊網路。本文使用docker machine和consul服務發現工具來講解這一點。前提是需要先安裝docker工具箱。1 docker multi host networking 作為乙個示...