Linux 环境下Docker将镜像打包导出到本地,上传至内网服务器(八)
背景
docker将镜像导出到本地,上传至内网服务器上
本文主要讲述的是第二种通过镜像的方式进行导出和上传
docker save
用于导出镜像到文件,包含镜像元数据和历史信息;(个人推荐这种
)docker export
用于将当前容器状态导出至文件,类似快照,所以不包含元数据及历史信息,体积更小,此外从容器快照导入时也可以重新指定标签和元数据信息;
1. docker容器打包成镜像和压缩
(1)首先查看镜像所在的容器,获取到容器id
docker ps -a
(2)将容器保存成镜像
sudo docker commit -a 'yjw' e007d8b7e1b7 my_projectv2:v2
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 save -o my_projectv2.tar my_projectv2
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)将镜像包压缩
sudo tar -zcvf my_projectv2.tar.gz my_projectv2.tar
还有一种容器的打包和压缩一步到位的方法:
docker save my_projectv2:v2 | gzip > my_projectv2.tar.gz
2. docker镜像压缩包解压及镜像载入 (移动到自己想要运行的服务器)
(1)压缩包解压
tar -zxvf mask_detection_v5.tar.gz
得到.tar格式的镜像包
(2)镜像载入
sudo docker load -i my_projectv2.tar
载入后利用 (比如想要修改加载的镜像,可以参阅后面的一、二、…五等步骤
)
sudo docker images
查看已存在的镜像。
(3)启动镜像-运行项目
docker run -d -it -p 8888:8888 --restart always --name my_dockerv2 my_projectv2:v2 或者 (-p 8888:8888 端口号的前后书写顺序没有关系,但是建议使用第一个 ) docker run -d -it --restart always --name my_dockerv2 -p 8888:8888 my_projectv2:v2
(4)启动镜像-项目成功
(5)docker停止容器(停止项目)
① 先查看所有正在运行中的容器
docker ps
② docker stop 容器id 停止容器
PS:某些情况下需要强制关闭,可以使用 docker kill 容器ID
(6)再次启动容器
docker start my_dockerv2
注意:执行启动命令后,后台运行项目环境需要花时间,因此使用IP地址访问时需要花时间等待才能够访问成功
PS:因为docker run 属于创建新容器并运行,我只是启动已有的容器,故不使用docker run xxx。
而 docker start 命令用于启动一个已经存在的容器
————————————————
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:
《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq
想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ