docker完整镜像迁移【亲测有效】

docker完整导出镜像并在新服务器运行

一般我们在迁移或者给第三方docker镜像时经常出现这个问题, 需要打包好已经配置好的完整docker镜像, 本文意在解决这个问题

一、把当前运行的容器 → 保存为新镜像

以如下的镜像为例

这一步会把你所有修改、配置、文件都打包进去

bash 复制代码
docker commit gracious_liskov office-plugin:v1
  • gracious_liskov:你的 onlyOffice 容器名
  • office-plugin:v1:自定义新镜像名(随便起)

执行成功会输出一串镜像 ID, 如下图所示:

二、导出这个新镜像为文件

命令如下:

bash 复制代码
# 可以自定义导出路径, 如下为/opt/
docker save -o /opt/office-plugin.tar office-plugin:v1

导出后你会得到一个 office-plugin.tar 文件(体积较大,正常)。

三、把 tar 文件拷贝到另一台服务器

可以用 scp、U 盘、rz/sz 等方式传输, 如果是内网推荐使用scp命令, 示例如下:

bash 复制代码
scp office-plugin.tar root@192.168.1.100:/home/data
  • office-plugin.tar: 待传输文件
  • root: 用户名
  • 192.168.1.100: 目标服务器ip
  • /home/data: 目标服务器路径(传输到此路径下)

如图所示:

四、在另一台 Docker 上导入镜像

命令如下:

bash 复制代码
docker load -i office-plugin.tar
  • office-plugin.tar: 可自定义文件位置, 如不在当前目录下可添加文件路径, 例如/data/images/office-plugin.tar

五、运行镜像

直接用这个命令运行:

bash 复制代码
docker run -d -p 18080:80 --restart=always -e JWT_SECRET=secret office-plugin:v1

参数说明:

  • docker run: 启动容器命令
  • -d : 后台运行
  • -p 18080:80: 端口映射(-p 宿主机端口:容器内部端口), 即18080 = 你电脑对外访问的端口, 80 = 容器内部服务用的端口
  • --restart=always: 开机 / 崩溃自动重启容器
  • -e JWT_SECRET: 给容器传环境变量
  • office-plugin:v1: 启动的容器名

启动成功, 如图所示:

至此, 完成docker镜像完整迁移 !

相关推荐
Zucker n10 分钟前
英语“论文”语法检查工具
linux·windows
fengkai454516 分钟前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod
2401_8685347820 分钟前
局域网络中信息安全方案设计及攻击防范技术(制造企业园区网)
服务器·网络
戴西软件43 分钟前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa
苏宸啊1 小时前
Reactor反应堆模式
linux
javaDocker1 小时前
1800 亿科技投入砸下去,多数机构平的只是服务器,不是能力
运维·服务器·人工智能·科技·研发效能·金融科技
服务器硬件项目经理1 小时前
超节点修仙录 目 录
服务器·硬件工程·硬件
骇客野人2 小时前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维
_菜鸟果果2 小时前
高德地图 JS API 2.0 在国产 Linux/ARM 电脑上渲染失败 的排查与解决
linux·开发语言·javascript
容器魔方2 小时前
Volcano v1.16 发布:新增 NamespaceQueue 与 fairshare,拓展 HyperNode 生态
人工智能·云原生·容器·华为云·云计算