Docker自定义网络



Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网是每个容器的默认网关。在同一宿主机内的容器都接入同一个网桥,容器之间通过容器de Container-IP直接通信。

  • 每一个安装了Docker的Linux主机都有一个docker0的虚拟网卡。桥接网卡
  • 每启动一个容器linux主机多了一个虚拟网卡。

相关命令:

 docker network ls :查看本地网络列表
 docker network create --subnet 子网IP 网络名:自定义网络
 docker network inspect 网络名:查看自定义网络详情
 docker network rm 网络名:删除自定义网络
 docker network connect	网络名 容器名:连接一个容器到一个网络
 docker network disconnect	网络名 容器名:断开连接

docker network ls

在这里插入图片描述

网络模式:

bridge模式(默认)

  • --net=bridge
  • 在Docker网桥docker0上为容器创建新的网络栈

none模式

  • --net=none
  • 不配置网络,用户可以稍后进入容器,自行配置

container模式

  • --net=container:name/id
  • 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。

host模式

  • --net=host
    容器和宿主机共享Network namespace;

用户自定义

  • --net=自定义网络名
  • 用户自己使用network相关命令定义网络,创建容器的时候可以指定为自己定义的网络

docker network create:

# 1、自定义创建的默认default "bridge" 默认都可以用主机名访问通
# 2、子网可以选择的IP地址从192.168.0.2 到192.168.255.255
docker network create --subnet=192.168.0.1/16 --gateway 192.168.0.1 customnet
docker network create --driver bridge --subnet 192.168.0.1/16 --gateway 192.168.0.1 customnet

启动容器使用 “–net 网络名” 或者 “–network 网络名”,把容器加入到自己创建的网络中

# 容器启动,指定容器ip
docker run --ip 192.168.0.1 --net 自定义网络名
# 容器启动,指定自定义网络方式(推荐使用)
docker run -d -P --network 自定义网络名 启动的容器名 
# 使用容器名的网络
docker run -d -P --network container:容器名 alpine

    # 后台启动tomcat,docker inspect tomcat可以查看ip地址变为自定义网络的IP范围内的地址
    docker run -d -P --network customnet --name=tomcat tomcatnginx
    # 后台启动nginx
	docker run -d -P --network customnet --name=nginx  nginxnginx
	
	# 第一种:进入tomcat控制台,如果ping命令找不到可以使用第二种方式尝试
	docker exec -it tomcat /bin/bash
	#测试,自定义
	ping nginx
	
	# 第一种:进入容器名的控制台
    docker run -it --network container:容器名 alpine
    #测试,自定义
	ping tomcat
	
	结果:
		[root~]# docker run -it --network container:nginx alpine
		/ # ping tomcat
		PING tomcat (192.168.0.2): 56 data bytes
		64 bytes from 192.168.0.2: seq=0 ttl=64 time=0.081 ms

docker network inspect:

在这里插入图片描述

  • driver 设置网络类型
  • subnet 设置自定义ip路由网络组
  • gateway 设置此网络默认ip路由

docker network connect:

# 将容器挂在指定网络下
docker network connect 网络名 容器名
# 把tomcat容器加入到customnet网络,在customnet网络中就可以访问tomcat
docker network connect customnet tomcat 

docker network disconnect:

docker network disconnect 网络名 容器名

docker network disconnect customnet tomcat 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值