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還可以使用 udp 標記來指定 udp 埠-p127.0
.0
$ docker run -d使用 docker port 來檢視當前對映的埠配置,也可以檢視到繫結的位址-p127.0
.0
$ 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 作為乙個示...