当前位置: 首页 > backend >正文

docker及docker-compose安装及使用

docker compose

🔗官网地址

一、为什么要使用docker compose

1.	简化管理
•	通过一个 YAML 文件定义和管理多容器应用。
•	简化服务间的编排与协调,方便环境的管理与复制。
2.	提升协作效率
•	配置文件易于共享,便于开发、运维等团队协作。
•	加快问题解决速度,提升整体开发效率。
3.	加快开发迭代
•	Compose 缓存容器配置,未更改的服务可复用容器。
•	快速修改和重启环境,提高开发与测试效率。
4.	良好的可移植性
•	支持在 Compose 文件中使用变量。
•	可灵活适配不同环境和用户需求。
5.	强大的社区支持
•	拥有活跃社区和丰富的资源与教程。
•	持续更新迭代,便于问题排查与学习提升。

二、 docker compose简介

1、Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;

2、Docker Compose通过yml文件定义多容器的docker应用;

3、Docker Compose通过一条命令根据yml文件的定义去创建或管理多容器;

如下图所示:
在这里插入图片描述

三、下载与安装

下载与安装:

  • 在安装docker时候已经完成了安装,直接查看版本号,查看是否安装成功
  • Docker 的 RPM 包已经 自动附带了 Compose 插件(docker-compose-plugin)
docker compose version

在这里插入图片描述
如果你想看看你的docker compose安装目录

docker info | grep -i compose
# -i   忽略大小写 (ignore)

在这里插入图片描述

四、 入门案例

需求:使用docker compose部署redis和mysql

docker-compose.yml文件的内容如下所示:
我本地已经有redis 6379和mysql 3306, 还有他们对应的数据卷, 为了避免各种冲突, 所以我的配置看起来有些奇怪

1、使用vim编辑

vim  docker-compose.yml
# 按i 进入编辑模式 粘贴配置
# 按escwq  #保存并退出
version: '3.9'  # 指定 Docker Compose 文件版本(可选但推荐)services:redis:  # Redis 服务image: redis:7.0.10  # 使用 Redis 7.0.10 镜像container_name: redis-test  # 容器名称为 redis-testports:- "6380:6379"  # 宿主机端口6380映射到容器6379volumes:- redis-data-test:/data  # 使用命名卷持久化 Redis 数据mysql:  # MySQL 服务image: mysql:8.0.30container_name: mysql-testports:- "3307:3306"  # 宿主机端口3307映射到容器3306volumes:- mysql_data-test:/var/lib/mysql  # 数据目录- mysql_conf-test:/etc/mysql      # 配置目录privileged: true  # 给予容器 root 权限(仅建议测试环境使用)environment:- MYSQL_ROOT_PASSWORD=test  # 设置 root 密码volumes:redis-data-test: {}     # Redis 数据卷mysql_data-test: {}     # MySQL 数据卷mysql_conf-test: {}     # MySQL 配置卷
  • 解释一下 volumes:
    🔹 告诉 Docker Compose:
    “我要用这几个命名卷(redis-data-test、mysql_data-test、mysql_conf-test),你用默认设置帮我创建就行。”
    📦 这些卷的作用:
    • 是 命名卷(Named Volumes),用于数据持久化。
    • 会在路径 /var/lib/docker/volumes/<卷名>/_data 中保存数据。
    • 每次运行 Compose 时都会复用这些卷(不会重复创建,但会自动挂载)。
    • 即使你删除了容器,卷中的数据也会保留。
    📌 {} 的作用
    • {} 表示“使用默认设置创建”
    • 你也可以只写成这样,效果一样:
volumes:redis-data-test:mysql_data-test:mysql_conf-test:

2、使用cat命令

  • 如果你的格式是复制过去是乱的可以用cat命令不走编辑器
cat > docker-compose.yml <<EOF
version: '3.9'  # 指定 Docker Compose 文件版本(可选但推荐)services:redis:  # Redis 服务image: redis:7.0.10  # 使用 Redis 7.0.10 镜像container_name: redis-test  # 容器名称为 redis-testports:- "6380:6379"  # 宿主机端口6380映射到容器6379volumes:- redis-data-test:/data  # 使用命名卷持久化 Redis 数据mysql:  # MySQL 服务image: mysql:8.0.30container_name: mysql-testports:- "3307:3306"  # 宿主机端口3307映射到容器3306volumes:- mysql_data-test:/var/lib/mysql  # 数据目录- mysql_conf-test:/etc/mysql      # 配置目录privileged: true  # 给予容器 root 权限(仅建议测试环境使用)environment:- MYSQL_ROOT_PASSWORD=test  # 设置 root 密码volumes:redis-data-test: {}     # Redis 数据卷mysql_data-test: {}     # MySQL 数据卷mysql_conf-test: {}     # MySQL 配置卷
EOF

在这里插入图片描述
在这里插入图片描述

3、docker compose常用命令:

# 启动容器(如果不存在容器就创建、存在则修改)
docker compose -f docker-compose.yml up -d# 删除所有容器
docker compose -f docker-compose.yml down# 停止所有容器
docker compose -f docker-compose.yml stop# 启动所有容器
docker compose -f docker-compose.yml start# 重启所有容器
docker compose -f docker-compose.yml restart

🔗常见指令参考官方文档

4、 查看结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 干掉
    在这里插入图片描述

五、部署springboot项目也一样

在yml配置中添加你制造好的镜像, 如何制作springboot镜像见教程🔗

http://www.xdnf.cn/news/5798.html

相关文章:

  • mac 10.15.7 svn安装
  • 设计模式系列(02):设计原则(一):SRP、OCP、LSP
  • Visual Studio 2022 跨网络远程调试
  • 多线程(二)
  • 【2025年前端高频场景题系列】使用同一个链接,如何实现PC打开是web应用、手机打是-个H5 应用?
  • 免费Office图片音频高效提取利器
  • ik 分词器 设置自定义词典
  • @Component 注解:Spring 组件扫描与管理的基石
  • 如何使用 WebBrowserPassView 查看所有浏览器密码?
  • 【WordPress博客AI内容辅助生成/优化工具箱插件下载无标题】
  • 语义分割模型部署到嵌入式终端的通用操作流程
  • journalctl 日志查看工具介绍
  • istringstream的简化源码详解
  • 热部署与双亲委派
  • pclinuxos系统详解
  • 应急响应靶机——WhereIS?
  • CRM和SCRM有什么区别
  • python实现usb热插拔检测(windows)
  • Android Framework
  • LWIP传输层协议笔记
  • Git 用法总结
  • 微信小程序原生swiper高度自适应图片,不同屏幕适配,正方形1:1等比例图片轮播
  • E+H流量计与Profibus DP主站转Modbus RTU/TCP网关通讯
  • DeepSeek新玩法: RAG Chatbot 3.0测试人的新大脑
  • 深入探讨dubbo组件的实践
  • Dapp开发-如何开发一个dapp
  • Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践
  • MYSQL之表的约束
  • rbac模型详解
  • PHP编写图书信息爬虫程序