本地上传镜像至服务器
三步走:拉取与打包(本地) -> 传输 -> 加载(服务器)。
第一步:在 Windows 本地拉取并打包镜像
拉取镜像 打开 Windows 的终端(PowerShell 或 CMD),拉取你需要的镜像。 例如:拉取最新的 nginx 镜像
docker pull nginx:latest⚠️** 架构注意(非常重要):** 大多数 Windows 电脑是 x86_64 (amd64) 架构。如果你的服务器也是 amd64(如常见的 VPS),直接拉取即可。 但是,如果你的服务器是 ARM 架构(例如甲骨文 ARM 机器、树莓派),你需要指定平台拉取,否则上传后无法运行: docker pull --platform linux/arm64 nginx:latest
将镜像保存为文件 使用 docker save 命令将镜像打包成一个 .tar 文件。
# 语法:docker save -o <文件名.tar> <镜像名:标签>
docker save -o nginx_image.tar nginx:latest此时,你的当前目录下会生成一个 _nginx_image.tar_ 文件。
第二步:将文件上传到服务器
你可以使用 scp 命令(Windows 10/11 自带)或图形化工具(如 WinSCP、FileZilla)。
方法 A:使用命令行 SCP (推荐) 在 PowerShell 中执行:
# 语法:scp <本地文件路径> <用户名>@<服务器IP>:<服务器目标路径>
scp nginx_image.tar root@192.168.1.100:/root/(系统会提示你输入服务器密码,输入后回车即可)
方法 B:使用图形化工具 如果你安装了 WinSCP 或 SFTP 等,直接将生成的 .tar 文件拖拽到服务器的某个目录(例如 /root/)即可。
第三步:在服务器上加载镜像
SSH 登录到你的服务器,进入上传文件的目录,执行加载命令。
加载镜像 使用 docker load 命令。
# 语法:docker load -i <文件名.tar>
docker load -i nginx_image.tar验证是否成功 查看镜像列表,确认镜像已经存在,若已经存在那么可以删掉上传的文件。
docker images你应该能看到 _nginx_ 及其标签 _latest_ 出现在列表中。
启动容器 现在你可以像平常一样使用这个镜像了:
docker run -d -p 80:80 nginx:latest💡 进阶技巧:压缩文件体积
docker save 出来的 .tar 文件是未压缩的,通常很大。如果你的上传带宽较小,可以在 Windows 上先压缩一下(需要安装 7-Zip 或使用 WSL)。
如果使用 WSL (Windows Subsystem for Linux) 或 Git Bash: 你可以直接用管道命令压缩:
Bash
docker save nginx:latest | gzip > nginx_image.tar.gz对应的服务器解压加载命令:
Bash
docker load -i nginx_image.tar.gzDocker 会自动识别 gzip 格式并解压加载。