1. 程式人生 > >Docker容器的網絡連接——Docker容器的互聯

Docker容器的網絡連接——Docker容器的互聯

連接 bin clas 一個 alt gin http 容器互聯 創建

  • 允許所有容器互聯 (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容器的互聯