Docker 网络配置 ( bridge 模式 && host 模式 && 自定义IP )

docker网络配置

当你安装了 docker, 它会自动创建 3 个网络,可以使用 docker network ls 命令来查看
当你运行一个容器的时候,可以使用 --network 参数来指定你的容器连接到哪一个网络
docker network ls

提示:
在计算机网络中,主机ID全部为0的地址为网络地址,而主机ID全部为1的地址为广播地址
这2个地址是不能分配给主机用的

一,bridge 模式

Docker 进程启动时,会在主机上创建一个名为 docker0 的虚拟网桥,此主机上启动的 Docker 容器会连接到这个虚拟网桥上
虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中
docker0 子网中分配一个 IP 给容器使用,并设置 docker0 IP 地址为容器的默认网关。 在主机上创建一对虚拟网卡 veth pair 设备, Docker veth pair 设备的一端放在新创建的容器中,并命名为eth0 (容器的网卡),另一端放在主机中,以 vethxxx 这样类似的名字命名,并将这个网络设备加入到docker0 网桥中
bridge 模式是 docker 的默认网络模式,不写 --net 参数,就是 bridge 模式
 

docker0就像是一个路由器,容器就像是路由器下的设备,它们在同一个网段内,可以互相ping 

1,查看 bridge 信息
docker inspect bridge

2,打开容器

docker run -itd --net=bridge --name cname iname

3,查看docker0网桥         查看容器网络

ip addr
ifconfig

1,创建一个镜像

docker build -t spring:1.0 .

2,在镜像中创建一个容器

docker run -itd --name bridge01 spring:1.0

4,当我们在创建一个容器bridge02 用01去 ping 01,镜像内容器类都是可以互相 ping 通的

进入 02 容器 ping 01 的端口
[root@izbp19vnkmsiw1q26cemqmz zking]# docker exec -it bridge02 sh
/usr/local/java # ping 172.17.0.2

 外部访问

设置端口映射
docker run -itd --name bridge03 -p 8081:8080 spring:1.0
-p 参数可以出现多次,绑定多个端口号
docker run -itd --name bridge05 -p 8082:8080 -p 8083:8080 spring:1.0

二,host模式

如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace ,而是和宿主机共用一个Network Namespace
容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口
但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的
docker run -itd --name host01 --net=host spring:1.0

三,自定义IP

创建

docker network create --subnet 127.18.0.0/16 mynet

删除

docker network rm xx

OK!到这就结束了,希望能帮到你!!!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亣柒

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值