news 2026/1/12 17:14:43

通过docker-compose.yml文件一次性安装mysql、minio、redis服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通过docker-compose.yml文件一次性安装mysql、minio、redis服务

1. 创建统一目录(确保路径存在)

# 创建 /opt/stack 及子目录,匹配 Compose 文件中的挂载路径 mkdir -p /opt/stack/{mysql,minio/data,redis/data}

2. 保存 Compose 文件

# 直接写入文件(避免手动编辑出错) cat > /opt/stack/docker-compose.yml <<'EOF' # Docker Compose 版本(3.8 兼容主流 Docker 版本,适配 19.03+) version: "3.8" # 自定义网络:隔离三个服务,避免与其他容器网络冲突 networks: stack-network: driver: bridge # 服务定义 services: # ===================== MySQL 服务 ===================== mysql: # 镜像版本:与原 docker run 一致(8.0.39) image: mysql:8.0.39 # 容器名称:与原 docker run 一致(vm_mysql01) container_name: vm_mysql01 # 重启策略:与原 docker run 一致(always,容器退出始终自动重启) restart: always # 端口映射:与原 docker run 一致(宿主机3306映射容器3306) ports: - "3306:3306" # 环境变量:与原 docker run 一致(root密码123456) environment: - MYSQL_ROOT_PASSWORD=123456 # 数据卷挂载:将原命名卷 mysql-data 改为绑定 /opt/stack/mysql 目录 # 统一存储到 /opt/stack/ 下,替代 Docker 自动管理的命名卷 volumes: - /opt/stack/mysql:/var/lib/mysql # 归属自定义网络 networks: - stack-network # 兼容原 MySQL 8.0 客户端认证方式(避免旧客户端连接失败) command: ["--default-authentication-plugin=mysql_native_password"] # ===================== MinIO 服务 ===================== minio: # 镜像版本:与原 docker run 一致(RELEASE.2025-04-22T22-12-26Z) image: minio/minio:RELEASE.2025-04-22T22-12-26Z # 容器名称:与原 docker run 一致(vm_minio01) container_name: vm_minio01 # 重启策略:与原 docker run 隐含的 always 对齐(异常自动重启) restart: always # 端口映射:与原 docker run 一致(9000=API端口,9001=控制台端口) ports: - "9000:9000" - "9001:9001" # 环境变量:与原 docker run 一致(账号admin,密码admin123456) environment: - MINIO_ROOT_USER=admin - MINIO_ROOT_PASSWORD=admin123456 # 数据卷挂载:将原 /opt/minio/data 改为 /opt/stack/minio/data # 统一存储到 /opt/stack/ 下,保持路径逻辑一致 volumes: - /opt/stack/minio/data:/data # 归属自定义网络 networks: - stack-network # 启动命令:与原 docker run 一致(指定存储目录和控制台端口) command: server /data --console-address ":9001" # ===================== Redis 服务 ===================== redis: # 镜像版本:与原 docker run 一致(6.2.6) image: redis:6.2.6 # 容器名称:与原 docker run 一致(vm_redis) container_name: vm_redis # 重启策略:与原 docker run 一致(always) restart: always # 端口映射:与原 docker run 一致(宿主机6379映射容器6379) ports: - "6379:6379" # 内存限制:与原 docker run 的 -m 256m 一致 mem_limit: 256m # 数据卷挂载:将原 /opt/redis/data 改为 /opt/stack/redis/data # 统一存储到 /opt/stack/ 下 volumes: - /opt/stack/redis/data:/data # 归属自定义网络 networks: - stack-network # 启动命令:与原 docker run 完全一致(开启AOF、内存限制、淘汰策略) command: - redis-server - --appendonly yes # 开启AOF持久化(与原命令一致) - --maxmemory 200mb # 最大内存限制200MB(与原命令一致) - --maxmemory-policy allkeys-lru # 内存满时淘汰最少使用的key(与原命令一致) EOF

3. 启动所有服务

# 进入 /opt/stack 目录 cd /opt/stack # 后台启动所有服务(自动拉取镜像、创建容器、挂载数据卷) docker compose up -d

4. 验证服务是否启动成功

# 查看容器状态(所有服务应为 Up 状态) docker compose ps # 验证 MySQL 连接 mysql -h127.0.0.1 -uroot -p123456 -e "select 1;" # 验证 MinIO 健康状态 curl -s http://127.0.0.1:9000/minio/health/live # 验证 Redis 连接 docker exec -it vm_redis redis-cli ping

日常运维命令

# 进入 /opt/stack 目录执行以下命令 cd /opt/stack # 停止所有服务(保留数据) docker compose stop # 启动所有服务 docker compose start # 重启所有服务 docker compose restart # 查看某个服务的日志(如 MySQL) docker compose logs -f mysql # 升级服务(拉取最新镜像并重启) docker compose pull && docker compose up -d # 彻底删除容器(保留 /opt/stack 下的数据) docker compose down

注意事项

  1. 首次启动时,Docker 会自动拉取对应版本的镜像,若网络较慢可耐心等待;
  2. /opt/stack/目录下的所有数据会持久化存储,删除容器不会丢失数据;
  3. 若需修改密码 / 端口 / 参数,直接编辑docker-compose.yml后执行docker-compose up -d即可热更新;
  4. 生产环境建议将restart: always改为restart: unless-stopped(手动停止后不会自动重启,更安全)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/5 0:58:20

Wan2.2-T2V-A14B生成视频帧率可达多少?动态表现实测

Wan2.2-T2V-A14B生成视频帧率可达多少&#xff1f;动态表现实测 在短视频满天飞、广告创意卷到极致的今天&#xff0c;你有没有想过——一句话就能生成一段像模像样的720P高清视频&#xff0c;而且动作自然、画面连贯&#xff0c;甚至能用在商业项目里&#xff1f;&#x1f92f…

作者头像 李华
网站建设 2026/1/8 17:42:26

IT人力外包和项目外包:90%企业搞混的关键区别

最近&#xff0c;一位做跨境电商的朋友跟我吐槽&#xff1a;“我花20万找软件外包公司做了个后台系统&#xff0c;结果上线三天就崩了两次&#xff0c;代码根本没法维护。早知道还不如自己招人&#xff01;”听起来很惨&#xff0c;但问题可能不在“软件外包”本身——而在于他…

作者头像 李华
网站建设 2026/1/10 11:38:59

【收藏】AI智能体不再神秘:用Python和LLM循环构建你的第一个智能体

本文详细介绍了AI智能体的核心原理及构建方法。AI智能体本质上是一个在循环中运行的大语言模型&#xff0c;配备了可调用的工具&#xff0c;能够动态决定控制流。文章通过四步构建流程&#xff1a;从基础文本生成到工具集成&#xff0c;再到实现闭环迭代&#xff0c;最终实现多…

作者头像 李华
网站建设 2026/1/9 7:42:24

不得了!国家级陶瓷工业设计中心,究竟藏着啥惊艳秘密?

不得了&#xff01;国家级陶瓷工业设计中心&#xff0c;究竟藏着啥惊艳秘密&#xff1f;在陶瓷产业蓬勃发展的当下&#xff0c;国家级陶瓷工业设计中心宛如一颗璀璨的明珠&#xff0c;吸引着众多目光。它究竟藏着哪些令人惊艳的秘密&#xff0c;又为何能在行业中占据如此重要的…

作者头像 李华
网站建设 2026/1/9 15:16:49

C3-OWD:一种用于开放世界检测的课程跨模态对比学习框架

摘要 https://arxiv.org/pdf/2509.23316 目标检测在封闭集环境下取得了显著进展&#xff0c;但在实际部署中仍面临两个挑战&#xff1a;对未见类别的泛化能力差&#xff0c;以及在恶劣条件下的鲁棒性不足。先前的研究分别探索了这些问题&#xff1a;可见光-红外检测提高了鲁棒…

作者头像 李华
网站建设 2026/1/10 19:14:24

探索面向不利条件语义分割的天气感知聚合与适应方法

摘要 https://openaccess.thecvf.com/content/ICCV2025/papers/Pan_Exploring_Weather-aware_Aggregation_and_Adaptation_for_Semantic_Segmentation_under_Adverse_ICCV_2025_paper.pdf 不利条件下的语义分割对于在具有挑战性的天气环境中实现可靠的视觉感知至关重要。这些极…

作者头像 李华