news 2026/10/2 13:00:29

一次性把「正在运行的 3 个容器」无损迁移到 docker-compose 体系,并打成 离线一键包

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一次性把「正在运行的 3 个容器」无损迁移到 docker-compose 体系,并打成 离线一键包

一次性把「正在运行的 3 个容器」无损迁移到docker-compose体系,并打成离线一键包。
全程 5 分钟,以后再启停/升级/迁移只要:

cd /opt/stack docker-compose up -d # 启动 docker-compose stop # 停止 docker-compose pull && docker-compose up -d # 升级

1.创建统一目录

mkdir -p /opt/stack/{mysql,minio,redis} cd /opt/stack

2.把现有数据“搬”到统一目录

# 1.1 MySQL 命名卷 → 本地目录 docker run --rm \ -v mysql-data:/from \ -v /opt/stack/mysql:/to \ alpine ash -c "cd /from && cp -a . /to" # 1.2 MinIO、Redis 已是绑定挂载,直接软链接(或 cp -a 均可) ln -s /opt/minio/data /opt/stack/minio-data ln -s /opt/redis/data /opt/stack/redis-data

若原目录不在/opt/minio/data请改成实际路径;也可用cp -a复制一份,确保迁移时不再依赖老目录

3.生成 docker-compose.yml

cat > docker-compose.yml <<'EOF' version: "3.8" services: mysql: image: mysql:8.0.39 container_name: vm_mysql01 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 123456 ports: - "3306:3306" volumes: - ./mysql:/var/lib/mysql command: ["--default-authentication-plugin=mysql_native_password"] minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z container_name: vm_minio01 restart: unless-stopped ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: admin123456 volumes: - ./minio-data:/data command: server /data --console-address ":9001" redis: image: redis:6.2.6 container_name: vm_redis restart: unless-stopped ports: - "6379:6379" volumes: - ./redis-data:/data mem_limit: 256m command: [ "redis-server", "--appendonly", "yes", "--maxmemory", "200mb", "--maxmemory-policy", "allkeys-lru" ] EOF

4.停旧容器、用 compose 启动新容器

# 3.1 平滑停止旧容器(数据已落盘) docker stop vm_mysql01 vm_minio01 vm_redis docker rm vm_mysql01 vm_minio01 vm_redis # 3.2 一键拉起 docker compose up -d

5.验证

docker compose ps # 三个都是 Up mysql -h127.0.0.1 -uroot -p123456 -e "select 1;" curl -s http://127.0.0.1:9000/minio/health/live docker exec -it vm_redis redis-cli ping

全部正常即可删除旧命名卷(可选):

docker volume rm mysql-data

6.制作离线一键迁移包

# 5.1 导出镜像 docker save mysql:8.0.39 minio/minio:RELEASE.2025-04-22T22-12-26Z redis:6.2.6 \ -o images.tar # 5.2 打包 compose 文件 + 数据 + 镜像 cd /opt tar zcf stack-all-in-one.tar.gz \ stack/ images.tar

→ 得到stack-all-in-one.tar.gz,随便拷到另一台 CentOS 7 机器:

# 目标机任意目录解压 tar zxf stack-all-in-one.tar.gz docker load -i images.tar cd stack docker-compose up -d

整套环境 3 分钟恢复原样。


以后日常命令

cd /opt/stack docker compose stop # 停机 docker compose start # 开机 docker compose pull # 拉最新镜像 docker compose up -d # 升级并重启 docker compose logs -f mysql # 看日志
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 13:32:10

Google购物广告与自然产品列表如何1+1>2?3个被验证的流量协同策略

在2025年数字营销格局中&#xff0c;Google Shopping广告与自然产品列表的协同效应已成为B2B企业获取高质量流量的关键战场。据水滴互动服务过的500企业数据模型显示&#xff0c;采用协同策略的品牌平均获客成本降低42%&#xff0c;转化率提升67%。一、流量协同的底层逻辑当用户…

作者头像 李华
网站建设 2026/10/2 0:36:28

漫画翻译神器manga-image-translator:哪个版本最适合你?

漫画翻译神器manga-image-translator&#xff1a;哪个版本最适合你&#xff1f; 【免费下载链接】manga-image-translator Translate manga/image 一键翻译各类图片内文字 https://cotrans.touhou.ai/ 项目地址: https://gitcode.com/gh_mirrors/ma/manga-image-translator …

作者头像 李华
网站建设 2026/10/2 8:27:10

SpringBoot中的命名与开发规范

SpringBoot中的命名与开发规范 在 Spring Boot 项目开发中&#xff0c;Java 类的命名&#xff08;如BO、PO、VO、DTO&#xff09;通常是根据其在项目中的角色和职责来确定的。平时开发项目&#xff0c;经常对于这些类名的命名有疑惑&#xff0c;所以记录下来。这些命名约定有助…

作者头像 李华
网站建设 2026/10/2 0:36:07

Vue 3 + TypeScript 严格模式下的 Performance.now() 实践:构建高性能前端应用

在 Vue 3 的响应式系统与 Composition API 加持下&#xff0c;结合 TypeScript 严格模式的类型安全特性&#xff0c;我们可以构建出既精确又健壮的浏览器性能监控体系。本文将深入探讨在 Vue 3 生态中使用 performance.now() 的典型场景与最佳实践。 一、严格模式与 Vue 3 的完…

作者头像 李华