Docker_学习笔记系列之网络

  1. docker网络简介

bridge: 桥接 【docker默认】mysql

docker network --helpnginx

  • docker每生成一个容器,就分配给容器一个ip,同事在宿主机增长一对网卡,即docker用的虚拟接口协议,经过evth-pair,充当一个桥梁,链接各类虚拟设备,默认经过docker0网关来通讯的,采用桥接模式redis

  • docker容器之间网络是互通的

8: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:45:be:08:ce brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:45ff:febe:8ce/64 scope link
valid_lft forever preferred_lft forever
155146: veth93406a5@if155145: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP
link/ether 4e:c7:49:8e:ed:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::4cc7:49ff:fe8e:ede6/64 scope link
valid_lft forever preferred_lft foreversql

2.容器之间经过容器名通讯--link【通常不使用】

启动两个容器,如test01,test02

下面这种方式就是经过容器名使test01 可以ping通test02

docker -d run --name test01 --link test02 nginx
docker exec -it test01 ping test02docker

但若是用test02去访问test01会出现不一样,由于link的本质是作了服务名与ip的映射且是单向的,因此不通,除非test02-->test01也配上--link,本质是向hosts中增长映射

经过以下命令可查到

docker network inspect 网络编号tomcat

3.自定义网络

默认启动容器,有参数--net bridge,这个就是docker0

docker run -d -P --name tomcat01 tomcat
等同于 docker run -d -P --name tomcat01 --net bridge tomcat安全

docker0的特色:默认,域名不能直接访问,可经过--link打通,自定义是自动开通的

docker network create --help网络

docker network create --driver bridge --subnet 192.168.0.0/16 --gatway 192.168.0.1 myfirstnetide

--driver 指定网络模式
--subnet 指定子网掩码
--gatway 指定网关code

查看建立的网络

docker network inspect myfirstnet

使用本身建立的网络

docker run -d -P --name test001 --net myfirstnet

4.不一样的子网如何互联,

创建本身的网络保证不一样的服务处于不一样的网络中,保证网络安全性

  1. redis集群 net1 192.168.1.0
  2. mysql集群 net2 192.168.2.0
    原理:经过给容器设置两个ip,至关于向两个不一样的网络各申请一个ip

docker network connect [OPTIONS] NETWORK CONTAINER [flags]

如使容器redis01与myslq01通讯

docker network connect net2 redis01

上面的本质是将redis01在net2中申请了一个ip

docker network net2 inspect

相关文章
相关标签/搜索