Docker入门学习笔记(四)
14. Docker容器的网络连接
- Docker容器的网络基础
docker0——Linux虚拟网桥
Linux虚拟网桥:
可以设置IP地址
相当于拥有一个隐藏的虚拟网卡
docker0 地址划分
IP:172.17.42.1 子网掩码:255.255.0.0
MAC:02:42:ac:11:00:00到02:42:ac:11:ff:ff
总共提供了65534个地址
安装网桥管理程序
yum -y install bridge-utils
查看网桥设备
# brctl show
自定义Docker0
修改docker0地址
$ sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
自定义虚拟网桥
添加虚拟网桥
$ sudo brctl addbr br0
$ sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
更改docker守护进程的启动配置
/etc/default/docker 中添加DOCKER_OPTS值
-b=br0
- Docker容器的互联
环境准备
用于测试的Docker镜像Dockerfile:
# ./cct/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
# docker build -t summer258/cct .
允许所有容器间互联
默认设置
--icc=true 默认
启动第一个容器
# docker run -it --name cct1 summer258/cct
/# nginx
Ctrl+P Ctrl+Q
启动第二个容器
# docker run -it --name cct2 summer258/cct
/# ifconfig
Ctrl+P Ctrl+Q
inet addr:172.17.0.3
连接到第一个容器cct1
# docker attach cct1
/# ifconfig
inet addr:172.17.0.2
测试连接:ping 172.0.3
连接到第一个容器cct2
# docker attach cct2
测试连接:curl http://172.17.0.2
--link
# docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMAND]
启动第三个容器
# docker run -it --name cct3 --link=cct1:webtest summer258/cct
/# ping webtest
重启docker服务
# systemctl restart docker
# docker restart cct1 cct2 cct3
/# ping webtest
拒绝所有容器间互联
Docker守护进程的启动选项
DOCKER_OPTS= " --icc=false"
# ubuntu
$ sudo vim /etc/default/docker
DOCKER_OPTS = "--icc=false"
# centos
$ sudo vim /etc/docker/daemon.json
{
…
“icc”:false,
…
}
$ sudo systemctl restart docker
$ ps -ef | grep docker
$ sudo docker restart cct1 cct2 cct3
$ sudo docker attach cct3
/# ping webtest
允许特定容器间的连接
Docker守护进程的启动选项
--icc=false --iptables=true
--link
$ sudo iptables -F
$ sudo iptables -L -n
- Docker容器与外部网络的连接
ip-forward
--ip-forward=true
决定系统是否会转发流量
$ sudo sysctl net.ipv4.conf.all.forwarding
iptables
iptables是与Linux内核集成的包过滤防火墙系统,
几乎所有的Linux发行版本都会包含iptables的功能
filter表中包含的链:
INPUT
FORWARD
OUTPUT
$ sudo iptables -L -n
限制IP访问容器
$ sudo iptables -I DOCKER -s 10.211.55.3 -d 127.17.0.7 -p TCP --dport 80 j DROP
端口映射访问
来源:CSDN
作者:渣渣的夏天
链接:https://blog.csdn.net/qq_39564555/article/details/98182385