龙芯Docker全流程:安装到离线迁移实战

Docker完整实操教程:安装、部署、打包、离线分发、导入全流程(适配龙芯LoongArch架构)

文章简介

日常服务器运维、国产化龙芯环境部署中,经常需要将调试好的Docker环境离线迁移至其他服务器。本文从零讲解 Docker安装、镜像部署、环境打包、离线分发、机器导入 全流程,区分标准镜像打包、容器快照打包,解决国产化LoongArch架构离线迁移、数据丢失、命令混淆等常见问题,所有命令可直接复制复用。

适用场景

内网离线部署、国产化龙芯服务器环境迁移、调试好的容器环境复刻、多服务器统一环境部署

运行环境

LoongArch64 架构(龙芯)、Ubuntu24.04

一、Docker 安装(国产化/通用服务器通用)

1.1 环境准备

更新系统依赖,安装基础工具:

bash 复制代码
apt update && apt upgrade -y
apt install ca-certificates curl gnupg lsb-release -y

1.2 安装Docker引擎

国产化龙芯架构可直接使用系统适配的Docker包,安装命令如下:

bash 复制代码
# 安装docker
apt install docker.io -y

# 启动并设置开机自启
systemctl start docker
systemctl enable docker

# 验证安装
docker --version

1.3 权限配置(免sudo执行docker)

避免每次执行docker命令需要sudo权限:

bash 复制代码
usermod -aG docker $USER
newgrp docker

二、镜像拉取与容器部署

本文实操基于 Ubuntu24.04 基础镜像 和自定义龙芯环境镜像 br-loongarch:24.04,适配国产化业务部署。

2.1 查看本地镜像

bash 复制代码
docker images

本次实操现有镜像:

复制代码
br-loongarch:24.04   de9a47e4cfc9
ubuntu:24.04         4fbb8e6a8395

2.2 启动业务容器

以龙芯环境镜像为例,启动交互式容器:

bash 复制代码
docker run -itd --name loong-env br-loongarch:24.04

参数说明:

  • -i:保持交互式会话
  • -t:分配伪终端
  • -d:后台守护进程运行
  • --name:自定义容器名称

2.3 进入容器配置环境

bash 复制代码
docker exec -it loong-env bash

在容器内完成环境安装、依赖配置、业务部署后,即可进行后续打包迁移操作。

三、Docker 环境打包(核心实操)

Docker离线打包分为两种核心场景,生产优先使用镜像打包,已配置好的容器使用快照打包

3.1 场景一:纯镜像打包(标准推荐)

适用于:基础镜像、可通过Dockerfile构建的干净环境,无运行时临时数据。

支持单镜像打包多镜像合并打包

3.1.1 一次性打包两个镜像(推荐离线迁移)
bash 复制代码
docker save br-loongarch:24.04 ubuntu:24.04 -o loong_env_2404.tar

执行后当前目录生成 loong_env_2404.tar离线包,包含两个完整镜像。

3.1.2 单独拆分打包
bash 复制代码
# 打包龙芯环境镜像
docker save br-loongarch:24.04 -o br-loongarch_2404.tar

# 打包ubuntu基础镜像
docker save ubuntu:24.04 -o ubuntu_2404.tar

3.2 场景二:容器快照打包(保留所有配置/数据)

适用于:容器内已经完成环境配置、安装依赖、生成业务数据,不想重新部署配置。核心逻辑:将运行容器提交为新镜像,再导出离线包

3.2.1 查看运行容器
bash 复制代码
docker ps
3.2.2 容器提交为新镜像
bash 复制代码
# 格式:docker commit 容器ID 新镜像名:版本
docker commit -m "龙芯完整业务环境20260811" loong-env br-loongarch:24.04-full

-m 参数:添加环境备注,方便后续区分版本

3.2.3 导出完整环境包
bash 复制代码
docker save br-loongarch:24.04-full ubuntu:24.04 -o loong_full_env.tar

3.3 关键避坑:docker save 不打包数据卷

如果容器使用 -v 挂载数据卷,镜像打包不会包含挂载数据,需要单独备份:

bash 复制代码
docker run --rm -v 你的数据卷名:/source -v $(pwd):/target alpine tar -cvzf /target/volume_backup.tar.gz -C /source .

四、离线环境分发

打包完成的 .tar 离线包,可通过U盘、内网传输、硬盘拷贝等方式分发至 同架构服务器

国产化重点提示 :本文打包的镜像为 LoongArch64 架构仅可在龙芯服务器运行,无法在x86架构机器导入启动,架构不互通。

五、目标机器导入Docker环境

目标机器提前安装好Docker,执行导入命令恢复完整环境。

5.1 导入离线镜像包

bash 复制代码
# 导入合并包
docker load -i loong_env_2404.tar

# 导入完整快照包(含容器配置)
docker load -i loong_full_env.tar

5.2 校验导入结果

bash 复制代码
# 查看导入的镜像
docker images

# 校验镜像架构(确认loongarch64)
docker inspect br-loongarch:24.04 | grep Architecture

5.3 启动导入后的容器

bash 复制代码
docker run -itd --name new-loong-env br-loongarch:24.04-full
docker exec -it new-loong-env bash

六、核心命令辨析(新手必看)

6.1 docker save VS docker export 区别

  • docker save(推荐):导出完整镜像,保留分层、环境变量、启动参数、架构信息,可直接run启动,适合环境迁移
  • docker export(不推荐):仅导出容器文件系统,丢失所有镜像元数据,导入后无法作为标准镜像运行

6.2 最佳实践总结

  1. 标准化环境:使用 Dockerfile 构建 + docker save 打包
  2. 临时调试环境:使用 docker commit 快照 + save 打包
  3. 离线迁移必须保证架构一致(x86迁x86、龙芯迁龙芯)
  4. 带数据业务,必须单独备份volume数据卷

七、常见问题解决

问题1:导入镜像后无法启动

原因:架构不匹配、镜像损坏、docker版本过低;解决方案:确认服务器架构一致,重新导出导入,升级docker版本。

问题2:迁移后容器内配置丢失

原因:直接save原始镜像,未commit容器快照;解决方案:已修改的环境必须先commit生成新镜像再打包。

问题3:数据卷数据丢失

原因:save不打包volume;解决方案:迁移时单独备份恢复数据卷文件。

文末总结

本文完整覆盖Docker 安装-部署-配置-打包-离线分发-导入恢复 全流程,针对性适配国产化龙芯LoongArch架构,解决了内网无外网、环境批量迁移、配置复刻的核心痛点。日常运维中,标准化镜像打包适合长期迭代,容器快照打包适合临时调试环境迁移,按需选择即可。

欢迎点赞、收藏、评论交流国产化Docker部署问题!


相关推荐
Zane19941 小时前
单例线程安全、生产者消费者、死锁:并发面试三连问串讲
java·后端
云烟成雨TD2 小时前
Micrometer 系列【42】链路追踪:Span 体系 | 核心 API
java·链路追踪·micrometer
Gorway2 小时前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端
LiLiYuan.2 小时前
【字符串常量池】
java·开发语言·面试
Sylvia33.2 小时前
从轮询到推送:足球数据API架构演进与火星数据技术拆解
java·服务器·网络·python·websocket·架构
cfm_29142 小时前
高并发系统缓存全解
java·缓存
16月6日-晴3 小时前
Java面向对象进阶—static
java·开发语言
xiaohaiAIgeo3 小时前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
meilindehuzi_a3 小时前
TypeScript面试题:interface 与 type:相同点、核心区别与选择指南
java·ubuntu·typescript