docker 网络

目录

源生网络

主机网络--network host

 none模式

 自定义网络模式

joined容器通信

跨主机通信

macvlan方案


源生网络

启用docker 会生成docker0默认172.17.0.1

[root@vm3 docker]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
298b9550550f   bridge    bridge    local
d83dadc0e786   host      host      local
967709b5ced7   none      null      local

yum install -y bridge-utils.x86_64
[root@vm3 docker]# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.024289b13e4f	no	

 启用服务

docker run -d --name demo nginx
docker inspect demo

查看服务获得一个ip,每个服务获得一个,单增从2开始

 使用桥接方式连接,网关dockeip

iptables -t nat -nL

 容器通过本机的内核地址伪装可以上网

主机网络--network host

宿主机和容器冲突,用一个ip

 none模式

禁用网络,仅回环

 自定义网络模式

docker network ls
docker network create mynet1
docker network ls

 增加mynet1网段

docker inspect mynet1

 指定网段添加

docker network create --subnet 172.10.0.0/24 --gateway 172.10.0.1 mynet2

mynet2可以指定ip

[root@vm3 docker]# docker run -d --name demo1 --network mynet1 --ip 172.18.0.100 nginx
fdca683f5561749927013c27526dc8512749372a0cedcfc4dc781b4cdeba8a59
docker: Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets.
[root@vm3 docker]# docker run -d --name demo2 --network mynet2 --ip 172.10.0.100 nginx
1a5826f25fa9085105733d0301360abafba446488e8fa83f6264ebf15b0c0c7e

 docker inspect demo2

 解析测试,mynet1和mynet2隔离

[root@vm3 docker]# docker rm -f demo1
demo1
[root@vm3 docker]# docker run -d --name demo1 --network mynet1 nginx
483f84879041656a8d371b8b2d43cfd0fdd9f593dd36232f9ff3488935e36db7



                  docker run -it --rm --network mynet1 busybox
分别ping demo1和demo2
                  docker run -it --rm --network mynet2 busybox
分别ping demo1和demo2

要使它们通信

[root@vm3 docker]# docker run -it --name demo3 --network mynet1 busybox
打入后台
[root@vm3 docker]# docker network 
connect     create      disconnect  inspect     ls          prune       rm          
[root@vm3 docker]# docker network connect 
bridge  host    mynet1  mynet2  none    
[root@vm3 docker]# docker network connect mynet2 demo3
[root@vm3 docker]# docker attach demo3

就是增加了一个网卡

 删除停掉的容器

docker container prune 

joined容器通信

共用网络栈

docker run -d  -name demo nginx
docker pull radial/busyboxplus
docker tag radial/busyboxplus busyboxplus
docker rmi radial/busyboxplus
docker run -it --rm --network container:demo busyboxplus

docker run -it --rm --link demo:web busyboxplus

 访问外网通过内核火墙策略

 外网访问内网

端口映射,双容于机志

docker run -d --name demo -p 80:80 nginx

宿主机访问

[root@students72 ~]# curl 172.25.7.7

 

 

 

 除非火墙策略和proxy进程同时去掉,才不可通信

跨主机通信

网络删除

docker network prune

macvlan方案

Linux内核提供的虚拟网卡技术

底层通信网卡

增加网卡

[root@vm2 harbor]# cd /etc/sysconfig/network-scripts/
[root@vm2 network-scripts]# ls
ifcfg-eth0   ifdown-eth   ifdown-post    ifdown-Team      ifup-aliases  ifup-ipv6   ifup-post    ifup-Team      init.ipv6-global
ifcfg-lo     ifdown-ippp  ifdown-ppp     ifdown-TeamPort  ifup-bnep     ifup-isdn   ifup-ppp     ifup-TeamPort  network-functions
ifdown       ifdown-ipv6  ifdown-routes  ifdown-tunnel    ifup-eth      ifup-plip   ifup-routes  ifup-tunnel    network-functions-ipv6
ifdown-bnep  ifdown-isdn  ifdown-sit     ifup             ifup-ippp     ifup-plusb  ifup-sit     ifup-wireless
[root@vm2 network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@vm2 network-scripts]# vim ifcfg-eth1
[root@vm2 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
NAME=eth1
ONBOOT=yes
BOOTPROTO=none
[root@vm2 network-scripts]# ifup eth1

打开混杂模式
[root@vm2 network-scripts]# ip link set eth1 promisc on

 vm3同样,查看混杂模式

 创建网络macvlan

两台机器

docker network create -d macvlan --subnet 10.20.0.0/24 --gateway 10.20.0.1 -o parent=eth1 macvlan1

测试

分别指定Ip

docker run -it --rm  --network macvlan1 --ip 10.20.0.11 busybox

docker run -it --rm  --network macvlan1 --ip 10.20.0.10 busybox

 

子接口eh1换eth1.1可以创建新的网段

不同网段信

docker  network connect macvlan ..

 

  • 3
    点赞
  • 1
    评论
  • 27
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 1 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

悠扬生

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值