Docker学习8

本文详细解析Docker中容器网络访问、服务名连接、桥接模式与自定义网络的使用,探讨了如何通过--link、--net和自定义网络实现容器间通信,以及DockerCompose和DockerSwarm在高级应用中的角色。
摘要由CSDN通过智能技术生成

Dockers网络

ip addr
#可以看到有几个网卡,可以看到里面有一个docker网卡

1、docker如何处理容器网络访问

#启动一个容器,并使用ip addr命令
sudo docker exec -it tom01 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
80: eth0@if81: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
       valid_lft forever preferred_lft forever
# 使用ping命令查看网络连通性
ping 172.18.0.2
PING 172.18.0.2 (172.18.0.2) 56(84) bytes of data.
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.091 ms
64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from 172.18.0.2: icmp_seq=4 ttl=64 time=0.077 ms
# 可以看到容器内部的ip和主机ip同一网段
# 在主机继续查看网卡,发现又新增了一块网卡
# 得出结论,只要启动docker容器,主机就会分配一个网卡,并且与容器网段相同
# 启动第二个容器,两个容器互相使用ip地址ping,发现也可以连通
# 本质上,docker使用的是linux的桥接,主机的 docker是一个网桥

2、如何使用服务名连接

# --link
sudo docker run -d -P --name tom02 --link tom01 tomcat
sudo docker exec -it tom02 ping tom01
# 可以开单可以连通
# 但是有个问题,反向不可以连通
# 需要给运行中的容器也重新配置
sudo docker exec -it tom02 cat /etc/hosts
# 可以看到这边绑定了一个tom01的ip
# 但是这个已经不建议使用--link了

3、容器互联高级使用

# 可以看到一些连接模式,一般使用bridge桥接模式
sudo docker network ls
# 自定义创建一个网卡
sudo docker network create \
--driver bridge \	# 桥接
--subnet 192.168.0.0/16 \	# 子网
--gateway 192.168.0.1 mynet	# 网关
# 创建镜像并使用网络配置
sudo docker run -d -P --name tom01 --net mynet tomcat
sudo docker run -d -P --name tom02 --net mynet tomcat
# 查看网卡,发现新增了两个网络配置
sudo docker network inspect mynet
# 容器之间使用ping服务名方式,测试
# 连通成功
# 好处,我们自定义的网络可以维护好对应关系
# 比如,不同的集群使用不同的网络,保证集群的安全和健康

4、连接一个网络到一个容器

sudo docker network connect mynet tom03
# 直接将容器放置到network网络中,tom03实际上就有了两个ip地址
# 官方解释即为一个容器两个ip
# 比较好的例子就是阿里云服务器,有一个公网ip和一个私网ip

Docker 高阶运用

Docker Compose

Docker Swarm

CI/CD之Jenkins

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值