Docker容器的網絡連接——Docker容器的互聯
- 允許所有容器互聯 (docker的默認情況)
- 拒絕容器間互聯
- 允許特定容器間的連接
環境準備
用於測試的Docker鏡像Dockerfile:
cd /root/dockerfile/df_test
vim Dockerfile
# Container connection test FROM ubuntu:14.04 RUN apt-get install -y ping RUN apt-get update RUN apt-get install -y nginx RUN apt-get install -y curl EXPOSE 80 CMD /bin/bash
Dockerfile中安裝了三個程序 ping、nginx、curl ,ping 和 curl 都是用來測試網絡連接的,nginx 用來提供默認的網絡服務,而暴露的 80 端口也是網絡服務使用的端口,在這個鏡像運行時會使用 /bin/bash 作為啟動命令。
根據Dockerfile文件創建鏡像:
docker build -t dormancypress/cct . —— 鏡像的名字為 dormancypress/cct
以上測試鏡像就已經創建好了,環境準備完成。
允許所有容器間互聯
介紹docker 容器互聯的默認方式:
在同宿主機下docker容器是通過虛擬網橋進行連接的,在默認情況下,在同一宿主機中運行的docker容器都是可以互相連接的
docker提供了一個容器間互相連接的選項:
--icc=true 默認
默認值true就代表著docker允許容器的互相連接
演示:
啟動兩個容器來驗證容器間的連接
啟動第一個容器:
docker run -it --name cct1 dormancypress/cct —— 因為我在鏡像的構建中已經指明了鏡像在運行時使用的啟動命令,鏡像名為dormancypress/cct ,容器名為 cct1
在容器中啟動nginx服務,使用ctrl+p ctrl+q 退出,確保容器一直運行
在啟動第二個容器:
docker run -it --name cct2 dormancypress/cct
查看cct2上的ip —— ifconfig
ctrl+p ctrl+q 退出 cct2 容器
進入cct1容器:查看 cct1 容器的 ip
docker attach cct1
使用ping命令來查看cct1 容器與cct2容器是否能連接
在cct1上執行ping命令:172.17.0.8是cct2 的ip地址 ,cct1的ip地址是172.17.0.7
可以看到在cct1可以ping通cct2;ctrl+p ctrl+q 退出容器
連接到cct2上:
docker attach cct2
Docker容器的網絡連接——Docker容器的互聯