帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
Linux 环境下Docker将镜像打包导出到本地,上传至内网服务器(八)
发布时间:2024-02-28 04:43:47   分类:帮助文档
Linux 环境下Docker将镜像打包导出到本地,上传至内网服务器(八)






文章目录
背景1. docker容器打包成镜像和压缩(1)首先查看镜像所在的容器,获取到容器id(2)将容器保存成镜像(3)将镜像打包(4)将镜像包压缩
2. docker镜像压缩包解压及镜像载入 (移动到自己想要运行的服务器)(1)压缩包解压(2)镜像载入(3)启动镜像-运行项目(4)启动镜像-项目成功(5)docker停止容器(停止项目)① 先查看所有正在运行中的容器② docker stop 容器id 停止容器
(6)再次启动容器
一、加载镜像(已有)二、运行镜像(已有)三、对已有镜像进行修改四、将容器打包成新的镜像五、将新的镜像保存为tar包


背景
docker将镜像导出到本地,上传至内网服务器上
背景:在企业中往往出现了内网不能和外网相通,不能使用docker pull命令来拉取镜像,这个时候我们就可以考虑在有所需镜像的服务器上导出镜像,再将其上传到内网服务器上。
有两种方法,一种是通过容器,一种是通过镜像,其实本质是一样的,容器的实质就是镜像
参考文章一
本文主要讲述的是第二种通过镜像的方式进行导出和上传

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)压缩包解压
通过finalshell或者其它方式,把前面步骤压缩的镜像压缩包给上传到内网服务器指令目录 (注意:我这里只是模仿步骤。有什么出入请指正)
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 停止容器
docker stop 2baed9f6f723


PS:某些情况下需要强制关闭,可以使用 docker kill 容器ID
(6)再次启动容器
docker start my_dockerv2

注意:执行启动命令后,后台运行项目环境需要花时间,因此使用IP地址访问时需要花时间等待才能够访问成功

PS:因为docker run 属于创建新容器并运行,我只是启动已有的容器,故不使用docker run xxx。 而 docker start 命令用于启动一个已经存在的容器
参考文章二
———————————————————————————————————————————————————
一、加载镜像(已有)
在镜像目录下打开linux终端,输入如下命令:
sudo docker load -i 镜像文件名.tar

二、运行镜像(已有)
镜像加载好之后,使用如下命令查看对应的镜像id:
sudo docker images

然后根据镜像id将镜像运行在容器中:
docker run -it 要运行的镜像id /bin/bash

三、对已有镜像进行修改
容器运行起来之后,就可以对镜像进行相应的修改了。
查看已安装的包:
pip list

安装新的包:
pip install 包名

卸载已安装的包:
pip uninstall 包名

修改完毕后,使用如下命令退出容器:
exit

四、将容器打包成新的镜像
首先查看镜像所在的容器,获取到容器id:
docker ps -a

然后将容器保存为新的镜像:
docker commit 容器id 要保存的镜像名称

五、将新的镜像保存为tar包
首先获取到新的镜像id:
docker images

然后将新镜像保存为tar包:
docker save 新镜像id -o 要保存的tar包名称.tar

保存为tar包之后,就可以加载使用了。
———————————————————————————————————————————————————
参考文章三


上一篇: Linux 环境下Docker部署项目(七) 下一篇:
end




香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价