docker网络配置

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

bridge模式

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

 

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

 外部访问 :设置端口映射

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 网段 name

删除:docker network rm xx

固定 ip启动   docker run -itd --name net01 --net mynet --ip 172.18.0.2 spring:1.0
测试    docker exec -it net01 ping net02
跨网桥测试    docker exec -it net01 ping 172.0.0.2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值