[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
第三步:将压缩包传输到新服务器
你可以使用 scp、rsync 或者 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
评论