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-test
    ports:
      - "6380:6379"  # 宿主机端口6380映射到容器6379
    volumes:
      - redis-data-test:/data  # 使用命名卷持久化 Redis 数据

  mysql:  # MySQL 服务
    image: mysql:8.0.30
    container_name: mysql-test
    ports:
      - "3307:3306"  # 宿主机端口3307映射到容器3306
    volumes:
      - 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-test
    ports:
      - "6380:6379"  # 宿主机端口6380映射到容器6379
    volumes:
      - redis-data-test:/data  # 使用命名卷持久化 Redis 数据

  mysql:  # MySQL 服务
    image: mysql:8.0.30
    container_name: mysql-test
    ports:
      - "3307:3306"  # 宿主机端口3307映射到容器3306
    volumes:
      - 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镜像见教程🔗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萌新上大分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值