Docker --docker网络知识详解(原生网络、自定义网络、容器通信、跨主机容器网络)

一、Docker的原生网络

docker network   子命令

connect         连接容器到指定网络

create            创建网络

disconnect     断开容器与指定网络的连接

inspect           显示指定网络的详细信息

ls                    显示所有网络

rm                  删除网络

首先需要清理实验环境

docker-compose up #启动所有服务 

docker-compose stop  #停止正在运行的容器,可以通过docker-compose start 再次启动

docker-compose down #停止和删除容器、网络、卷、镜像。(#停用移除所有容器以及网络相关)

 docker安装后会自动创建3种网络:bridge(桥接)、host(主机网络)、none(禁用)

1、docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器会自动桥接到这个接口。

[root@server1 ~]# yum install -y bridge-utils 安装网桥管理工具包 (brctl show     查询网桥信息)容器网络以桥接的方式桥接到宿主机上

[root@server1 ~]# docker inspect demo 可以看到容器的网关就是宿主机的桥接 172.17是所有容器的地址 0.1是网关 其他容器ip地址是动态分配以单调递增的方式来进行分配 被占用则不能用 如果容器停止它所占用的ip将释放出来给其他的容器 由于此机制 容器重启之后与原来的ip地址不一样      

bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。容器通过虚拟网卡veth数据包到达docker0网桥在由linux内核数据包路由到eth0出去

2、host模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。

host网络模式需要在容器创建时指定 --network=host 

[root@server1 ~]# docker run -d --name demo --network host nginx
a206df944a2a453a61b447cfb765d5e088f5e2cbfb76c8f6fb788ef8dfee52cc
[root@server1 ~]# brctl show   查询网桥信息 没有桥接
bridge name    bridge id        STP enabled    interfaces
docker0        8000.0242258ffab5    no        
[root@server1 ~]# ip addr    没有新建网络
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:81:ab:94 brd ff:ff:ff:ff:ff:ff
    inet 172.25.15.1/24 brd 172.25.15.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe81:ab94/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:25:8f:fa:b5 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:25ff:fe8f:fab5/64 scope link
       valid_lft forever preferred_lft forever

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值