--link 參數的格式為 --link name:alias,其中 name 是要連線的容器名稱,alias 是這個連線的別名。
使用 docker ps 來查看容器的連線
$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
349169744e49 training/postgres:latest su postgres -c '/usr About a minute ago Up About a minute 5432/tcp db, web/db
aed84ee21bde training/webapp:latest python app.py 16 hours ago Up 2 minutes 0.0.0.0:49154->5000/tcp web
可以看到自訂命名的容器,db 和 web,db 容器的 names 列有 db 也有 web/db。這表示 web 容器連線到 db 容器,web 容器將被允許存取 db 容器的訊息。
Docker 在兩個互聯的容器之間創建了一個安全隧道,而且不用映射它們的連接埠到宿主主機上。在啟動 db 容器的時候並沒有使用 -p 和 -P 標記,從而避免了暴露資料庫連接埠到外部網路上。
這裡有 2 個 hosts,第一個是 web 容器,web 容器用 id 作為他的主機名,第二個是 db 容器的 ip 和主機名。 可以在 web 容器中安裝 ping 命令來測試跟db容器的連通。
root@aed84ee21bde:/opt/webapp#apt-getinstall-yqqinetutils-pingroot@aed84ee21bde:/opt/webapp#pingdbPINGdb (172.17.0.5): 48 data bytes56bytesfrom172.17.0.5:icmp_seq=0ttl=64time=0.267ms56bytesfrom172.17.0.5:icmp_seq=1ttl=64time=0.250ms56bytesfrom172.17.0.5:icmp_seq=2ttl=64time=0.256ms