[root@lavm-wji8mfqadm ~]# docker ps

CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS       PORTS                                                  NAMES

890e9aee1f0a   php:8.1-fpm   "docker-php-entrypoi…"   5 months ago   Up 2 hours   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp              php81_app

53b6923573da   mysql:5.7     "docker-entrypoint.s…"   5 months ago   Up 2 hours   33060/tcp, 0.0.0.0:6033->3306/tcp, :::6033->3306/tcp   mysql57

[root@lavm-wji8mfqadm ~]# 

第一步:将容器打包成镜像 (Commit)

使用 docker commit 命令将当前容器的运行状态保存为一个新的本地镜像。

Bash

# 语法: docker commit <容器ID或名称> <新镜像名称>:<标签>
docker commit 890e9aee1f0a my_php81_image:v1

执行后,你可以通过 docker images 命令看到新生成的 my_php81_image 镜像。

第二步:将镜像导出为压缩包 (Save)

使用 docker save 命令将刚刚打包的镜像保存为 .tar 文件,以便传输。

Bash

# 语法: docker save -o <保存的文件名.tar> <镜像名称>:<标签>
docker save -o my_php81_image.tar my_php81_image:v1

第三步:将压缩包传输到新服务器

你可以使用 scprsync 或者 sftp 工具将生成的 .tar 文件传到另一台服务器。

Bash

# 使用 scp 传输的示例
scp my_php81_image.tar root@<新服务器的IP地址>:/root/

第四步:在新服务器上导入镜像 (Load)

登录到你的新服务器,进入存放 .tar 文件的目录,使用 docker load 恢复镜像。

Bash

# 语法: docker load -i <文件名.tar>
docker load -i my_php81_image.tar

导入成功后,在新服务器上运行 docker images 就能看到 my_php81_image:v1 了。

第五步:在新服务器上运行容器 (Run)

最后,使用新导入的镜像启动容器。注意:你需要保持与原来相同的端口映射和参数。 根据你提供的 docker ps 信息,原来的 PHP 容器映射了 9000 端口:

Bash

docker run -d -p 9000:9000 --name php81_app my_php81_image:v1