學習目標:
容器之間可以相互連接訪問:: --link redis:redisAlias
准備工作
FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN pat-get install -y curl
EXPOSE 80
CMD /bin/bash
#構建測試鏡像
docker build -t lexiaofei/cct .
1、允許所有容器互聯 --icc=true 默認
$ docker run -it --name cct1 lexiaofei/cct
# nginx
CTRL+P
$ docker run -it --name cct2 lexiaofei/cct
#ifconfig
172.17.0.7
CTRL+P
$ docker attach cct1
#ifconfig
172.17.0.6
# ping 172.17.0.7
說明cct1能夠連接到cct2
CTRL+P
docker attach cct2
curl http://172.17.0.6
有返回值
docker stop cct1
docker restart cct1
docker attach cct1
ifconfig 發現ip變了,重啟實例會變化,所以不能使用容器ip地址互訪,重啟時會失效
使用link選項,指定代號訪問容器
docker run -it --name cct3 --link=cct1:webtest /lexiaofei/cct
ping webtest
在cct3中,env 發現cct3啟動時添加了大量WEBTEST打頭的變量
vi /etc/hosts 發現添加了映射
sudo service docker restart
docker ps
docker restart cct1 cct2 cct3
docker attach cct3
ping webtest 發現能通
發現env和/etc/hosts也隨之變了。
2、拒絕容器間連接 -icc=false
修改默認配置文件 /etc/default/docker
修改完畢 service docker restart
docker restart cct1 cct2 cct3
docker attach cct3
ping webtest 失敗
3、允許特定容器間連接
設置 -icc=false --iptables=true, 修改默認配置文件 /etc/default/docker
修改完畢 service docker restart
使用--link選項
docker attach cct1
#nginx
#exit
docker attach cct3
# curl webtest
docker run -it --name cct4 --link=cct1:webtest leixaofei/cct
# curl webtest
檢查設置iptables
sudo iptables -L -n
清空iptables
sudo iptables -F
sudo iptables -L -n
sudo service docker restart
sudo iptables -L -n 規則鏈現在顯示可以了
docker restart cct1 cct2 cct3 cct4
docker attach cct1
# nginx
ctrl+p
docker cct4
curl cct1