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 最佳实践总结
- 标准化环境:使用 Dockerfile 构建 + docker save 打包
- 临时调试环境:使用 docker commit 快照 + save 打包
- 离线迁移必须保证架构一致(x86迁x86、龙芯迁龙芯)
- 带数据业务,必须单独备份volume数据卷
七、常见问题解决
问题1:导入镜像后无法启动
原因:架构不匹配、镜像损坏、docker版本过低;解决方案:确认服务器架构一致,重新导出导入,升级docker版本。
问题2:迁移后容器内配置丢失
原因:直接save原始镜像,未commit容器快照;解决方案:已修改的环境必须先commit生成新镜像再打包。
问题3:数据卷数据丢失
原因:save不打包volume;解决方案:迁移时单独备份恢复数据卷文件。
文末总结
本文完整覆盖Docker 安装-部署-配置-打包-离线分发-导入恢复 全流程,针对性适配国产化龙芯LoongArch架构,解决了内网无外网、环境批量迁移、配置复刻的核心痛点。日常运维中,标准化镜像打包适合长期迭代,容器快照打包适合临时调试环境迁移,按需选择即可。
欢迎点赞、收藏、评论交流国产化Docker部署问题!