如何将 Docker 镜像的 tar 文件迁移到另一台服务器并运行容器

在 Docker 容器化的世界里,我们经常需要将容器从一个环境迁移到另一个环境。这可能是因为开发、测试或生产环境的需求。本文将详细介绍如何将 Docker 镜像的 tar 文件从一台服务器迁移到另一台服务器(IP 地址为 192.168.100.10),并在目标服务器的 /data/ 目录下加载镜像及运行容器。

步骤 1: 保存容器为镜像

首先,我们需要将正在运行的容器保存为一个新的 Docker 镜像。这可以通过 docker commit 命令完成:

复制代码
docker commit 87935e5efea3 mylinuxcommand:latest

这里 87935e5efea3 是容器的 ID,mylinuxcommand:latest 是新镜像的名称和标签。

步骤 2: 将镜像保存为 tar 文件

接下来,我们使用 docker save 命令将新创建的镜像保存为 tar 文件:

复制代码
docker save -o mylinuxcommand.tar mylinuxcommand:latest

这会创建一个名为 mylinuxcommand.tar 的文件,包含了 mylinuxcommand:latest 镜像的所有数据。

步骤 3: 将 tar 文件传输到目标服务器

现在,我们需要将这个 tar 文件传输到目标服务器 192.168.100.10/data/ 目录。我们可以使用 scp 命令来实现:

复制代码
scp mylinuxcommand.tar root@192.168.100.10:/data/

请确保目标服务器的 /data/ 目录存在,并且 root 用户有权限写入该目录。

步骤 4: 在目标服务器上加载镜像并运行容器

传输完成后,我们需要在目标服务器上登录,并加载这个 tar 文件为 Docker 镜像:

复制代码
ssh root@192.168.100.10
docker load -i /data/mylinuxcommand.tar

加载完成后,我们可以使用 docker run 命令来启动新的容器:

复制代码
docker run -d -p 9700:3000 --name new-linux-command mylinuxcommand:latest

这将在目标服务器上启动一个新的容器,将容器的 3000 端口映射到宿主机的 9700 端口。

注意事项

  • 确保目标服务器 192.168.100.10 上已安装 Docker,并且 Docker 服务正在运行。
  • 确保您有足够的权限在目标服务器上执行 Docker 命令。
  • 确保 /data/ 目录在目标服务器上存在,并且 root 用户有权限写入该目录。
  • 如果目标服务器上的 Docker 版本与源服务器不同,可能会影响容器的兼容性。
  • 在生产环境中,建议使用 Dockerfile 来构建镜像,以确保构建过程的可重复性和可维护性。

通过以上步骤,您可以轻松地将 Docker 镜像从一个服务器迁移到另一个服务器,并在新的环境中运行您的容器。这为容器化应用的部署和管理提供了极大的灵活性和便利。

相关推荐
myloveasuka5 分钟前
[Linux]内核态与用户态详解
linux
@BreCaspian9 分钟前
在HP暗影精灵Ubuntu20.04上修复IntelAX211Wi-Fi不可用的全过程记录——系统安装以后没有WIFI图标&无法使用无线网
linux
小眼睛FPGA14 分钟前
【RK3568+PG2L50H开发板实验例程】Linux部分/FPGA dma_memcpy_demo 读写案例
linux·运维·科技·ai·fpga开发·gpu算力
weixin_4373982121 分钟前
转Go学习笔记
linux·服务器·开发语言·后端·架构·golang
津津有味道31 分钟前
Qt C++串口SerialPort通讯发送指令读写NFC M1卡
linux·c++·qt·串口通信·serial·m1·nfc
别骂我h41 分钟前
Kubernetes服务发布基础
云原生·容器·kubernetes
JeffersonZU1 小时前
Linux/Unix文件IO(文件描述符、原子操作、文件数据结构、open、read、write、fcntl、dup)
linux·c语言·unix·gnu
szekl2 小时前
HDMI 2.0 4×2矩阵切换器412HN——多信号输入输出的高清解决方案
linux·矩阵·计算机外设·电脑·ekl
weixin_399380692 小时前
k8s一键部署tongweb企业版7049m6(by why+lqw)
java·linux·运维·服务器·云原生·容器·kubernetes
阿巴~阿巴~2 小时前
Linux基本命令篇 —— uname命令
linux·运维·服务器