一、情况
docker 镜像有时无法从外网访问,需要把docker 打包导出到本地,然后以文件的形式,发送给其他人,再然后其他人把docker 镜像文件导入到自己的服务器本地镜像仓库,方可使用。也可把镜像上传到公司内网。下面就开始展示操作,实现上面的功能。
二、docker 容器打包成镜像和压缩
(1)首先查看镜像所在的容器,获取到容器ID
(2)将容器保存成镜像
sudo:以管理员权限运行命令,通常用于在 Linux 系统中运行需要管理员权限的命令。
docker:Docker 命令行工具。
commit:提交 Docker 镜像的命令。
-a:指定镜像的作者,这里是作者的名字: yjw。
e007d8b7e1b7:docker的容器id。
my_projectv2:v2:要新创建的镜像的名称和版本号,这里是新建一个名为 my_projectv2:v2的镜像,版本号为 v2。
因此,这条命令将创建一个新的 Docker 镜像,名为 my_projectv2:v2,并将它提交到 Docker 仓库中。
(3)将镜像打包
docker:Docker 命令行工具。
save:将 Docker 镜像保存为文件的命令。
~
-o : 参数表示指定输出文件的路径和名称,这个路径是相对于当前工作目录的路径。如果当前工作目录是 /etc/docker,那么 my_projectv2.tar 文件会被保存到 /etc/docker/my_projectv2.tar , 如上图所示。
~
my_projectv2:v2 :要保存的 Docker 镜像的名称和版本号,这里是一个名为 my_projectv2的镜像,版本号为 v2。
(注意:我没加版本号也执行了,是因为我镜像名称是唯一的,不存在相同的版本号,因此命令没有加:v2不会出错)
因此,这条命令将把名为 my_projectv2、版本号为 v2 的 Docker 镜像保存为一个名为 my_projectv2.tar 的文件。
(4)将镜像包压缩
还有一种容器的打包和压缩一步到位的方法:
三、docker 镜像压缩包解压 以及 镜像导入到镜像仓库
(1)将镜像压缩包cp 到想要运行的服务器上
(2) 压缩包解压
得到.tar格式的镜像包
(3)镜像导入到本地镜像仓库
(4)使用这个镜像
sudo docker run -it --privileged --restart=always --name 自己的容器名字 -v /dev/bus/usb:/dev/bus/usb -v /home:/home/nvidia/ 镜像
四、修改容器的环境,在生成新的镜像
上面的镜像运行成容器,进入容器后,修改容器的环境,可以重复第二节内容,就生成新的镜像了。这样就开始了镜像的迭代升级。
例如: