二 加强门户网站建设,静态网站源文件下载,展览 网站源码,2017网站icp备案docker的网络类型
5种网络类型
bridge 默认类型#xff0c;桥接到宿主机docker0的网络#xff0c;有点类似于VM虚拟机的NAT网络模型。 案例: docker run --rm -itd --network bridge --name wzy666wzy-bridge alpine
host host类型#xff0c;共享宿主机的网络空间#…docker的网络类型
5种网络类型
bridge 默认类型桥接到宿主机docker0的网络有点类似于VM虚拟机的NAT网络模型。 案例: docker run --rm -itd --network bridge --name wzy666wzy-bridge alpine
host host类型共享宿主机的网络空间网络性能是最高的。 案例: docker run --rm -itd --network host --name wzy666wzy-host alpine
none 只有本地回环网卡没有其他网络即该容器不能上网。 案例: docker run --rm -itd --network none --name wzy666wzy-none alpine
container 共享其他容器的网络这个网络在K8S中Pod是频繁使用的。 案例: docker run --rm -itd --network container:wzy666wzy-bridge --name wzy666wzy-container alpine
custom network 自定义网络我们可以使用docker network create创建自定义网络。 同一个自定义网络中各个容器可以直接基于容器名称进行通信无需解析/etc/hosts!
bridge类型
docker run -dit --network bridge --name bri-net apps:v1 host类型
docker run -dit --network host --name host-net apps:v1 none不使用网络连接
docker run -dit --network none --name none-net apps:v1 自定义网络
link互联
创建容器[rootdocker101~]# docker run -di --name c1 apps:v1
[rootdocker101~]# docker run -di --name c2 --link c1 apps:v1查看ip2个容器的IP并不相同停止容器c1导致c2没有ipdocker stop c1
开启容器c1可以解决c2没网的问题
create network
创建
创建网络时可以自定义网关IP地址范围子网范围网络类型等
创建docker network create --subnet 20.0.0.0/24 --ip-range 20.0.0.254/24 --gateway 20.0.0.254 qwe – 默认是bridge类型 -d bridge 手动指定类型 删除docker network docker network rm qwe 使用
[rootdocker101~]# docker run -d --name net-qwe -p 80:80 --network qwe apps:v1
8851c9662496ce924b299786789cc85b9e8ee3fa4781156959d106cba45660e6
[rootdocker101~]# curl 10.0.0.101
!DOCTYPE html
htmlheadmeta charsetutf-8/titleyinzhengjie apps v1/titlestylediv img {width: 900px;height: 600px;margin: 0;}/style/headbodyh1 stylecolor: green凡人修仙传 v1 /h1divimg src1.jpgdiv/body/html
[rootdocker101~]# docker exec -it net-qwe ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
15: eth0if16: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1500 qdisc noqueue state UP link/ether 02:42:14:00:00:01 brd ff:ff:ff:ff:ff:ffinet 20.0.0.1/24 brd 20.0.0.255 scope global eth0valid_lft forever preferred_lft forever
[rootdocker101~]# docker container inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} net-qwe
20.0.0.1使用自定义网络自动写入hosts
[rootdocker101~]# docker network create -d bridge --subnet 11.0.0.0/24 --gateway 11.0.0.254 wzy666[rootdocker101~]# docker run -d -p 81:80 --name n1 --network wzy666 --ip 11.0.0.1 apps:v1[rootdocker101~]# docker run -d -p 82:80 --name n2 --network wzy666 --ip 11.0.0.2 apps:v1# 没有手动添加hosts可以ping通
[rootdocker101~]# docker exec n1 ping n2 -c3
PING n2 (11.0.0.2): 56 data bytes
64 bytes from 11.0.0.2: seq0 ttl64 time0.261 ms
64 bytes from 11.0.0.2: seq1 ttl64 time0.176 ms
64 bytes from 11.0.0.2: seq2 ttl64 time0.166 ms--- n2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max 0.166/0.201/0.261 ms[rootdocker101~]# docker exec n1 cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
11.0.0.1 07888692a0cf跨节点互联
macvlan
节点容器容器IPdocker101WordPress172.22.0.1docker102database172.22.0.2
1.两个节点加载Linux内核是否支持macvlan模块 lsmod | grep macvlan modprobe macvlan #临时开启macvlan lsmod | grep macvlan
2.两个节点创建同网段的自定义网络类型
docker network create -d macvlan --subnet 172.29.0.0/16 --gateway 172.29.0.254 -o parenteth0 wzy-macvlan
3.运行容器
docker102节点docker run -d --name db --network wzy-macvlan --ip 172.22.0.2 \-e MYSQL_ALLOW_EMPTY_PASSWORDyes \-e MYSQL_DATABASEwordpress \-e MYSQL_USERwzy \-e MYSQL_PASSWORDwzy666 \mysql:8.3.0-oracledocker101节点docker run -d --name wp \
--network wzy-macvlan --ip 172.22.0.1 \
-e WORDPRESS_DB_HOST172.22.0.2:3306 \
-e WORDPRESS_DB_USERwzy \
-e WORDPRESS_DB_PASSWORDwzy666 \
-e WORDPRESS_DB_NAMEwordpress \
-p 80:80 \
wordpress# 最后添加bridge网卡
docker network connect bridge wp4.访问测试网页 overlay网络
1.运行consul容器
docker run -d --network host --restart always --namedev-consul -e CONSUL_BIND_INTERFACEeth0 \
consul:1.15.4rootdocker101:~# ss -ntl | grep 8500
LISTEN 0 4096 *:8500 *:* 2.docker101/102客户端指定consul服务的地址客户端对应的cluster-advertise值要根据实际情况调整。然后重启docker.service
[rootdocker101 ~]# cat /etc/docker/daemon.json
{cluster-store: consul://10.0.0.101:8500,cluster-advertise: 10.0.0.101:6666
}[rootdocker102~]# systemctl restart docker.service查看consul节点信息3.docker101创建overlay网络
[rootdocker101~]# docker network create -d overlay \
--subnet 172.30.0.0/16 --gateway 172.30.0.254 wzy-overlay该网络同步到102节点[rootdocker102~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
3009cd56b1f6 bridge bridge local
ca55b5dcb849 host host local
8a4525466e60 none null local
454a12a54ef7 wzy-overlay overlay global4.创建容器
[rootdocker101~]# docker run -d -p 81:80 --name c1 --network wzy-overlay apps:v1[rootdocker102~]# docker run -d -p 82:80 --name c2 --network wzy-overlay apps:v15.查看IP地址
[rootdocker101~]# docker exec c1 ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
40: eth0if41: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1450 qdisc noqueue state UP link/ether 02:42:ac:1e:00:02 brd ff:ff:ff:ff:ff:ffinet 172.30.0.2/16 brd 172.30.255.255 scope global eth0valid_lft forever preferred_lft forever
42: eth1if43: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ffinet 172.18.0.2/16 brd 172.18.255.255 scope global eth1valid_lft forever preferred_lft forever[rootdocker102~]# docker exec c2 ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
8: eth0if9: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1450 qdisc noqueue state UP link/ether 02:42:ac:1e:00:01 brd ff:ff:ff:ff:ff:ffinet 172.30.0.1/16 brd 172.30.255.255 scope global eth0valid_lft forever preferred_lft forever
11: eth1if12: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ffinet 172.18.0.2/16 brd 172.18.255.255 scope global eth1valid_lft forever preferred_lft forever6.c1可以ping通c2底层走了vxlan网络
_lft forever
11: eth1if12: BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ffinet 172.18.0.2/16 brd 172.18.255.255 scope global eth1valid_lft forever preferred_lft forever6.c1可以ping通c2底层走了vxlan网络