直接将本地docker镜像部署到服务器需执行导出—传输—加载三步:先用docker save导出镜像为tar包,再通过scp等工具上传至服务器,最后用docker load加载并运行容器,适用于内网或无镜像仓库场景。

直接把本地构建好的 Docker 镜像部署到服务器,核心是“导出—传输—加载”三步,不依赖镜像仓库,适合内网、无公网或权限受限场景。
确认并导出本地镜像
先查清你要部署的镜像名和标签:
- 运行 docker images,找到目标镜像,例如
myapp:1.2.0 - 用 docker save 打包成 tar 文件:
docker save -o myapp-1.2.0.tar myapp:1.2.0 - 生成的
myapp-1.2.0.tar是纯数据文件,可校验大小(通常几十 MB 到几百 MB),确保没报错
上传 tar 文件到服务器
推荐用 scp,安全且无需额外工具:
- 命令示例:
scp myapp-1.2.0.tar user@192.168.1.100:/home/user/ - 替换
user为服务器用户名,192.168.1.100为服务器 IP,路径按需调整 - 如网络受限,也可用宝塔面板、SFTP 工具或 rsync 替代
在服务器上加载并运行
登录服务器后执行:
- 加载镜像:
docker load -i /home/user/myapp-1.2.0.tar - 验证是否成功:
docker images | grep myapp应能看到同名同标签镜像 - 若项目用 docker-compose,确保服务器有
docker-compose.yml和对应.env;然后运行:docker compose up -d - 若直接运行容器,可用:
docker run -d --name myapp -p 3000:3000 myapp:1.2.0
检查与收尾
部署后别跳过验证:
- 查容器状态:
docker ps看是否 running,有无重启频繁 - 看日志:
docker logs myapp(或容器名)确认启动无报错 - 访问服务端口(如
curl http://localhost:3000/health或浏览器打开) - 注意环境变量、挂载目录、端口映射等配置是否与本地一致,尤其
.env和docker-compose.yml中的路径、密码、域名











