Linux-Skills:docker将容器打包成镜像&打包镜像为压缩包&载入镜像压缩包
Intro
服务器上想pull镜像可能遇到网络问题。一种解决方法是在有梯子的机器上docker pull下来想要的镜像,然后把镜像打包成压缩包,然后scp(或其他方法)拷贝到服务器上,然后load这个镜像压缩包。
测试机器:ubuntu 22.04;
Solution
0. 若本地有机器有镜像,且创建了容器做了修改,需要换设备使用这个镜像(容器),使用docker commit将容器保存为镜像:
$ docker commit -m="<commit message>" -a="<author>" <container_ID> <new_image_name>:<tag>
或者不加commit message 和作者信息:
$ docker commit <container_ID> <new_image_name>:<tag>
随后检查镜像是否被成功生成:
$ docker images
1. 若需要再dockerhub上的镜像,在有梯子的机器上docker pull下来想要的镜像,并打包上传到目标机器上:
首先$ docker pull <myimage>
,然后采用下面的命令打包镜像为压缩包:
$ docker save -o <myimage>.tar <myimage>:<tag>
随后拷贝到目标机器,以scp为例:
$ scp <myimage>.tar <my-server>:/home/<user>/
2. docker load -i <myimage>.tar
:
在目标机器上:
$ docker load -i <myimage>.tar
检查镜像是否被称重载入:
docker images