Skip to content

本地上传镜像至服务器

三步走:拉取与打包(本地) -> 传输 -> 加载(服务器)

第一步:在 Windows 本地拉取并打包镜像

拉取镜像 打开 Windows 的终端(PowerShell 或 CMD),拉取你需要的镜像。 例如:拉取最新的 nginx 镜像

plain
docker pull nginx:latest

⚠️** 架构注意(非常重要):** 大多数 Windows 电脑是 x86_64 (amd64) 架构。如果你的服务器也是 amd64(如常见的 VPS),直接拉取即可。 但是,如果你的服务器是 ARM 架构(例如甲骨文 ARM 机器、树莓派),你需要指定平台拉取,否则上传后无法运行: docker pull --platform linux/arm64 nginx:latest

将镜像保存为文件 使用 docker save 命令将镜像打包成一个 .tar 文件。

plain
# 语法:docker save -o <文件名.tar> <镜像名:标签>
docker save -o nginx_image.tar nginx:latest

此时,你的当前目录下会生成一个 _nginx_image.tar_ 文件。


第二步:将文件上传到服务器

你可以使用 scp 命令(Windows 10/11 自带)或图形化工具(如 WinSCP、FileZilla)。

方法 A:使用命令行 SCP (推荐) 在 PowerShell 中执行:

plain
# 语法:scp <本地文件路径> <用户名>@<服务器IP>:<服务器目标路径>
scp nginx_image.tar root@192.168.1.100:/root/

(系统会提示你输入服务器密码,输入后回车即可)

方法 B:使用图形化工具 如果你安装了 WinSCP 或 SFTP 等,直接将生成的 .tar 文件拖拽到服务器的某个目录(例如 /root/)即可。


第三步:在服务器上加载镜像

SSH 登录到你的服务器,进入上传文件的目录,执行加载命令。

加载镜像 使用 docker load 命令。

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

验证是否成功 查看镜像列表,确认镜像已经存在,若已经存在那么可以删掉上传的文件。

plain
docker images

你应该能看到 _nginx_ 及其标签 _latest_ 出现在列表中。

启动容器 现在你可以像平常一样使用这个镜像了:

plain
docker run -d -p 80:80 nginx:latest

💡 进阶技巧:压缩文件体积

docker save 出来的 .tar 文件是未压缩的,通常很大。如果你的上传带宽较小,可以在 Windows 上先压缩一下(需要安装 7-Zip 或使用 WSL)。

如果使用 WSL (Windows Subsystem for Linux) 或 Git Bash: 你可以直接用管道命令压缩:

Bash

plain
docker save nginx:latest | gzip > nginx_image.tar.gz

对应的服务器解压加载命令:

Bash

plain
docker load -i nginx_image.tar.gz

Docker 会自动识别 gzip 格式并解压加载。