Docker 从入门到实战教程(三):Docker 容器网络与数据管理 | Docker 网络配置、数据卷使用与持久化存储
Docker 从入门到实战教程(三):Docker 容器网络与数据管理 | Docker 网络配置、数据卷使用与持久化存储
摘要: 本文是《Docker 从入门到实战》的第三篇,全面介绍了 Docker 容器的网络配置、数据管理以及持久化存储的实现方式。通过深入了解 Docker 网络模型和数据卷的使用,你可以提升容器部署的灵活性与可维护性,特别适用于微服务架构和 DevOps 流程中的数据管理需求。
本月特别福利:Open AI PRO 版镜像:
88元/🈷️,先到先得~
文章目录
- Docker 从入门到实战教程(三):Docker 容器网络与数据管理 | Docker 网络配置、数据卷使用与持久化存储
- 作者简介
- 猫头虎是谁?
- 作者名片 ✍️
- 加入我们AI共创团队 🌐
- 加入猫头虎的AI共创变现圈,一起探索编程世界的无限可能! 🚀
- 正文
- 一、Docker 网络管理
- 1.1 Docker 网络模型
- 1.2 Docker 网络命令
- 1.3 连接容器与外部网络
- 二、Docker 数据管理
- 2.1 Docker 数据卷(Volumes)
- 2.2 使用主机文件系统作为数据卷
- 2.3 数据卷的备份与恢复
- 三、Docker 持久化存储
- 3.1 使用数据卷实现持久化
- 3.2 使用外部存储
- 四、Docker 网络与数据管理实战
- 4.1 示例:使用多个容器进行数据库和应用分离
- 五、总结
- 文末粉丝福利
- 联系我与版权声明 📩
作者简介
猫头虎是谁?
大家好,我是 猫头虎,AI全栈工程师,某科技公司CEO,猫头虎技术团队创始人,也被大家称为虎哥。我目前是COC北京城市开发者社区主理人、COC西安城市开发者社区主理人,以及云原生开发者社区主理人,在多个技术领域如云原生、前端、后端、运维和AI都有超多内容更新。
感谢全网三十多万粉丝的持续支持,我希望通过我的分享,帮助大家更好地掌握和使用各种技术产品,提升开发效率与体验。
作者名片 ✍️
- 博主:猫头虎
- 全网全平台搜索关键词 猫头虎 即可与我建联
- 作者微信号:Libin9iOak
- 作者公众号:猫头虎技术团队
- 更新日期:2025年04月08日
- 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!
加入我们AI共创团队 🌐
- 猫头虎AI共创社群矩阵列表:
- 点我进入AI共创变现社群入口专区:
https://bbs.csdn.net/topics/617720781 - 点我进入CSDNWF万粉博主变现入口专区:
https://bbs.csdn.net/topics/617717169
- 点我进入AI共创变现社群入口专区:
加入猫头虎的AI共创变现圈,一起探索编程世界的无限可能! 🚀
正文
一、Docker 网络管理
1.1 Docker 网络模型
Docker 网络是容器之间进行通信的基础,Docker 提供了多种网络模式来满足不同的应用场景。Docker 默认支持以下几种网络模式:
- Bridge 网络模式:这是 Docker 容器的默认网络模式,适用于同一主机内的容器之间的通信。
- Host 网络模式:容器直接使用宿主机的网络栈,性能更高,但会失去容器网络的隔离性。
- Overlay 网络模式:适用于跨多个主机的容器通信,常用于 Docker Swarm 或 Kubernetes 集群。
- None 网络模式:容器不会连接到任何网络,仅用于容器隔离场景。
- Container 网络模式:容器共享另一个容器的网络栈。
1.2 Docker 网络命令
在实际操作中,你可以使用以下命令来管理 Docker 网络:
- 查看所有网络:
docker network ls
- 创建自定义网络:
docker network create --driver bridge my_network
- 连接容器到网络:
docker network connect my_network container_name
- 断开容器与网络的连接:
docker network disconnect my_network container_name
1.3 连接容器与外部网络
容器在 Bridge 网络模式下通常只能与主机内的容器进行通信。若要让容器与外部网络(如外部数据库、Web 服务等)进行通信,可以使用端口映射或配置 Overlay 网络。
端口映射示例:
docker run -d -p 8080:80 --name mycontainer nginx
该命令将容器的 80 端口映射到宿主机的 8080 端口。
二、Docker 数据管理
Docker 的数据管理通常通过数据卷(Volumes)来实现。数据卷可以在容器之间共享数据,并在容器生命周期结束后保留数据。
2.1 Docker 数据卷(Volumes)
数据卷是用于持久化和共享数据的管理工具。你可以使用数据卷来存储数据库数据、应用日志或其他需要长期保存的数据。
- 创建数据卷:
docker volume create my_volume
- 挂载数据卷到容器:
docker run -d -v my_volume:/data --name mycontainer ubuntu
- 查看所有数据卷:
docker volume ls
- 删除数据卷:
docker volume rm my_volume
2.2 使用主机文件系统作为数据卷
除了使用 Docker 内部的卷,你还可以将宿主机的目录挂载到容器中,方便数据的访问和管理。
docker run -d -v /host/path:/container/path --name mycontainer ubuntu
2.3 数据卷的备份与恢复
可以通过 docker cp
命令将容器中的文件复制到宿主机,也可以备份和恢复数据卷的内容。
备份容器数据卷:
docker run --rm --volumes-from mycontainer -v $(pwd):/backup ubuntu tar cvf /backup/my_backup.tar /data
恢复容器数据卷:
docker run --rm --volumes-from mycontainer -v $(pwd):/backup ubuntu tar xvf /backup/my_backup.tar -C /data
三、Docker 持久化存储
容器的存储是临时的,因此,当容器停止或删除时,容器内部的数据也会丢失。为了避免这一问题,Docker 提供了多种持久化存储的方式,确保容器数据在容器生命周期之外得以保存。
3.1 使用数据卷实现持久化
数据卷是 Docker 提供的持久化存储方式。其主要优势在于:
- 数据卷存储在宿主机的文件系统中,容器停止或删除不会丢失数据。
- 数据卷可以跨容器共享,适用于微服务架构中多个服务需要共享数据的场景。
3.2 使用外部存储
除了 Docker 的本地数据卷,用户也可以使用外部存储系统(如 NFS、Ceph、Amazon EBS 等)来实现持久化存储。这适用于需要跨多个主机或高可用的场景。
四、Docker 网络与数据管理实战
4.1 示例:使用多个容器进行数据库和应用分离
在这个实战示例中,我们将使用 Docker Compose 来创建一个包含 Web 服务和数据库服务的多容器应用。
- 创建
docker-compose.yml
文件:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- web_data:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
volumes:
web_data:
db_data:
- 运行多容器应用:
docker-compose up -d
该配置将 Web 服务(nginx)与 MySQL 数据库服务分离,并为每个服务创建独立的卷来存储数据。
五、总结
Docker 网络和数据管理是容器化应用中不可忽视的部分。了解如何配置容器网络、如何使用数据卷来持久化和共享数据,将极大地提升容器管理的灵活性和效率。
在下一篇教程中,我们将深入探讨 Docker Compose 的使用,包括如何管理多个容器的生命周期、如何进行服务编排等。
下一篇预告:《Docker 从入门到实战教程(四):Docker Compose 与多容器应用管理》
文末粉丝福利
👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击文末名片获取更多信息。我是猫头虎,期待与您的交流! 🦉💬
GO ! GO ! Go !
入口:https://gitcode.com/qq_44866828/CSDNWF
联系我与版权声明 📩
- 联系方式:
- 猫头虎微信号: Libin9iOak
- 万粉变现经纪人微信号:CSDNWF
- 公众号: 猫头虎技术团队
- 版权声明:
本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。
点击✨⬇️下方名片
⬇️✨,加入猫头虎AI共创社群,交流AI新时代变现的无限可能。一起探索科技的未来,共同成长。🚀