【Docker】学习笔记_网络连接
1.docker0(容器与HOST之间的连接):
docker0:Linux的虚拟网桥(连接Docker的Host主机中的守护进程以及容器)
网桥:(数据链路层通过mac地址对网络进行划分并传递数据)
特性:可以设置IP地址,相当一个隐藏的虚拟网卡
默认设定:
IP:172.17.42.1
子网掩码:255.255.0.0
MAC:02:42:ac:11:00:00 ~ 02:42:ac:11:ff:ff
总共提供了65534个地址
网桥管理工具:bridge-utils的安装:apt-get install -y bridge-utils
查看网络设备:sudo btctl show
修改docker0的地址:sudo ifconfig docker0 [希望分配的IP地址] netmask [子网掩码]
使用自定义虚拟网桥:
sudo brctl addbr [虚拟网桥名称]
sudo ifconfig [虚拟网桥名称] [希望分配的IP地址] netmask [子网掩码]
绑定到Docker
修改/etc/default/docker
添加DOCKER_OPTS = "-b = br0"
2.容器与容器之间的互联:
允许所有的容器互联(默认):
默认情况下同一宿主机内的容器都是可以互相连接的
--icc:默认为true
如果在Docker上提供了服务,假如这些服务是通过IP地址进行连接的话,这样就是不可靠的,因为在Docker重启前后,容器的IP地址都是会变化的。
为了避免这种情况可以使用以下指令进行创建容器(不会受到IP地址变化带来的影响):
docker run --link = [CONTAINER_NAME]:[ALIAS别名] [IMAGE] [COMMOND]
--link:指定链接的容器
(该指令会在容器内创建对应的环境变量以及/etc/hosts文件中的配置,这些环境变量以及文件配置都会在容器重新启动的时候相对应的发生变化)
拒绝容器之间的互联:将icc变为false(/etc/default/docker中的DOCKER_OPTS)
允许特定容器间的互联:
--icc = false
--iptables = true
容器启动时用--link来进行互联配置
3.容器与外部网络之间的连接
ipforward:Linux系统中决定系统是否会转发流量的变量(default = true):
查看ipforward的值:sudo sysctl net.ipv4.conf.all.forwarding
iptables:Linux的一种防火墙设置:
表:被抽象化的操作:filter(默认表)
链:数据处理的不同阶段:input/forward/output
规则:在每个阶段的操作:ACCEPT / DROP
通过iptables来添加规则(阻止特定IP对特定容器的访问):
sudo iptables -I DOCKER -s [源地址] -d [目的地址] -p TCP --dport 80 -j DROP
- docker 学习笔记之docker连接网络的设置
- docker 学习笔记21:docker连接网络的设置
- Docker学习笔记 - Docker容器与外部网络的连接
- docker 学习笔记之docker连接网络的设置
- Android网络连接处理学习笔记
- TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接
- TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接
- Android网络连接处理学习笔记
- IOS学习笔记(七)网络连接
- 【SQL Server学习笔记】2:在与SQL Server建立连接时出现与网络相关的或特定于实例的错误
- Android网络连接处理学习笔记
- Android 中的WiFi学习笔记(转载)----WIFI启动 代码流程走读---网络连接流程
- 网络学习笔记(一):TCP连接的建立与关闭
- TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接
- 初学Docker容器网络不得不看的学习笔记
- Android网络连接处理学习笔记
- 安卓学习笔记--获取网络连接状态
- 网络是怎样连接的学习笔记(四)