将已有容器部署到其他服务器
将已有容器部署到其他服务器
步骤简述:将容器保存成镜像——将镜像打成tar包,压缩成tar.gz——使用scp命令将文件传输到目标服务器——将tar.gz解压成tar包,载入镜像——docker run 运行镜像创建容器
Step1:将容器保存成镜像
1 | $ docker ps -a |
说明:-a后面的是提交用户的用户名,-m后面的是提交信息,1c786853ea40是容器id,最后是镜像名及tag,打包出来的镜像如下:
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
Step2:将镜像打包并压缩
1 | $ docker save -o eula-uptime-kuma-v1.0.tar eula/uptime-kuma:v1.0 |
Step3:将文件传输到目标服务器
1 | $ scp -P port /root/eula-uptime-kuma-v1.0.tar.gz root@ip:/root/eula-uptime-kuma-v1.0.tar.gz |
Step4:解压并载入镜像
1 | $ tar -zxvf eula-uptime-kuma-v1.0.tar.gz |
载入出来的镜像如下:
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
Step5:运行镜像创建容器
1 | $ docker run -d --restart=always -p 3001:3001 --name uptime-kuma eula/uptime-kuma:v1.0 |
注意事项:
[1] 通过容器打Docker镜像要比Dockerfile生成的包要大(里面有很多没用的东西),尽量使用后者,但一些需要离线部署并且需要自动下载算法模型的除外。
[2] 直接对设置挂载的容器打包,会导致通过挂载加进去的文件并没有加进去(打出来的镜像不包含挂载进去的文件),可以再创建个不挂载的容器,把文件替换进去,再对这个不挂载的容器打包。