Docker 网络
下载pipework来管理容器网络
git clone https://github.com/jpetazzo/pipework
cp ./pipework/pipework /usr/local/bin/
用pipework来设置网桥br0 ,并分配给容器test01
docker run -itd --name test01 --network none busybox
pipework br0 test01 172.18.18.36/24@172.18.18.1
1、查看网络
docker network ls
2、设置容器的网络为none
docker run -it --net=none xx /bin/bash
3、设置和主机共用网络
docker run -it --net=host busybox /bin/bash
4、设置容器特权
--privileged=true
5、启动容器的时候设置容器主机名
-h cook
6、修改docker的默认容器配置
image.png
7、允许docker ping所有容器
sudo iptables -A DOCKER -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A DOCKER -p icmp --icmp-type echo-reply -j ACCEPT
8、自定义网桥
yum install -y bridge-utils
docker network create --driver bridge --subnet=172.30.0.0/16 br01s
docker run -itd --net=br01s --name test03 busybox
Docker默认的网络驱动
<meta charset="utf-8">
1、桥接网络模式(bridge):这是docker默认的网络驱动程序,如果在创建驱动程序时未指定驱动程序类型,默认便是bridge模式。当你的应用程序是在同一个主机部署独立容器时,推荐使用桥接网络模式。连接到同一桥接网络的容器可以互相通信,对不同桥接网络的容器则无法直接相互通信。
2、覆盖网络模式(overlay)****:覆盖网络模式可以将不同的Dockerd守护进程连接在一起,该网络模式支持集群容器之间相互通信,以及集群和某个单机版独立容器直接相互通信,或不同Dockerd守护进程的独立容器之间进行通信。该网络模式使用场景比较广泛,通常集群部署时会使用该模式。
3、主机网络模式(host):如果某个容器需要访问主机的某个服务,那么需要配置主机网络模式,该模式直接占用主机的网络端口和网卡资源。也就是说docker网络并非隔离而是直接和宿主机共享资源,就好像应用是直接在宿主机上运行一样。但是其它(例如存储,进程命名空间和用户命名空间)相对宿主机隔离的。该模式仅适用于Docker 17.06及更高版本的swarm服务。
4、MAC网络模式(macvlan):Macvlan网络允许您为容器分配MAC地址,使其显示为网络上的物理设备。Docker守护程序通过其MAC地址将流量路由到容器。macvlan 使用场景在于如果希望直接连接到物理网络时,使用驱动程序有时是最佳选择,而不是通过Docker宿主机的网络堆栈进行路由。
**5、禁用网络模式(none): **禁用容器所有网络。通常与自定义网络驱动程序一起使用。none不适用于群组服务。