docker进阶与实战

本文深入探讨了Docker的网络模式,包括host、bridge和none模式,并通过实战展示了如何实现容器间的单向和双向通信。此外,还介绍了如何使用Volume进行容器间的数据共享,以及通过docker-compose高效管理多容器应用,如搭建redis和nginx集群。最后,讲解了Docker镜像仓库的建立,包括阿里云和自建Harbor仓库的配置与使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境说明


本文是紧接着上一节 docker入门与实战


docker的网络模式

  • host 主机模式。该网络模式下容器不会拥有自己的ip地址,而是使用宿主机的ip地址和端口,因此不存在宿主机与容器端口映射。
  • bridge 桥接模式(默认)。桥接模式是,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。后续启动的所有容器实例都会与docker0网桥在一个网段上。所有容器实例通过docker0网桥和宿主机进行网络通信。
  • none 无网络模式。关闭网络连接,无法连接外网。
# 查看容器支持的网络模式
docker network ls
# 指定网络模式启动容器 
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"

网络模式实战-实现两容器单向网络通信

使用场景,企业应用服务,与mysql数据库服务。两个服务分别部署不同容器,但是只需要企业应用服务能访问mysql数据库服务,反过来则没有必要

解决方案:容器间基于Link实现单向通信

# 启动mysql服务 必须指定名字
docker run --name=mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mycentos:mysql
# 启动一个应用(此处用centos7代替) link mysql容器
docker run -itd --name=mycentos --link mymysql centos:7
# 使用命令查看 mycentos 与 mymysql 容器ip, 属性为 Networks.bridge.IPAddress
docker inspect mymysql # 172.17.0.2
docker inspect mycentos # 172.17.0.4
# 进入mycentos ping mymysql
docker exec -it mymysql /bin/bash
[root@7ed31839001e /]# ping mymysql
PING mymysql (172.17.0.2) 56(84) bytes of data.
64 bytes from mymysql (172.17.0.2): icmp_seq=1 ttl=64 time=0.281 ms
64 bytes from mymysql (172.17.0.2): icmp_seq=2 ttl=64 time=0.172 ms
# 进入mymysql ping mycentos
docker exec -it mymysql /bin/bash
# 由于此mysql镜像是基于debian而不是基于centos所以需要安装ping命令工具
apt-get update && apt-get install net-tools && apt install -y iputils-ping
# ping mycentos
root@7ea8c4cbed8b:/docker-entrypoint-initdb.d# ping mycentos
ping: mycentos: Name or service not known
root@7ea8c4cbed8b:/docker-entrypoint-initdb.d# 

link 总结,其实就是将 link 的容器的ip地址与容器名 记录到本地。类似于本地hosts 文件或者说是 DNS 解析。

网络模式实战-实现两容器双向网络通信

使用场景,企业应用服务,相互之间需要有网络通信。

解决方案:容器间基于brige网桥实现双向通信

# 创建一个网桥
docker network create -d bridge my_bridge
# 查看网络模式
docker network 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值