docker镜像导入和导出是什么意思
时间:2022-03-16 14:27
在docker中,镜像导入是利用“load [options]”命令,将当前镜像复制出一个新的镜像;镜像导出是利用“save [options] images”命令,保存包含历史在内的镜像所有的信息。 本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。 随着容器技术的发展,现在很多的应用程序系统都会选择使用docker容器进行部署,但是有时候使用docker容器进行部署的时候会遇到问题,比如说我们的应用程序里面需要依赖其他第三方的镜像,如果这时候服务器是在内网不能连接外网的情况下,那么就无法部署了。基于这种情况,docker官方支持docker镜像和容器的导入和导出,我们可以在一台能够联网的机器上面编译镜像,然后导出镜像或者容器,最后把导出的镜像或者容器上传到内网服务器,然后在导入镜像或者容器,这样就可以了。 镜像和容器的导入、导出操作主要涉及到下面的几个命令:save、load、export、import。 演示过程中我们是在本地生成镜像或者容器,然后把镜像或者容器导出,最后上传到阿里云服务器演示导入功能。 我们使用VS 2019创建一个ASP.NET Core MVC的项目,添加Dockerfile文件: 然后发布项目。我们查看现有的docker镜像 可以看到:现在只有两个.net core的镜像。我们生成镜像: 如下图所示: 查看生成后的镜像 然后我们根据生成的镜像来运行容器,首先查看现有的容器: 可以看到这时没有任何容器。我们运行容器: 可以看到:容器已经运行成功了。 涉及到的命令: 我们使用上面的镜像来演示镜像的导出: 如下图所示: 这里导出的时候指定了导出后文件的路径,如果不指定路径,默认是当前文件夹。 或者也可以使用下面的命令导出: 其中-o和>表示输出到文件,dockerdemo.tar为导出的目标文件,dockerdemo为源镜像名。 我们查看本地是否有了导出后的文件: 我们首先使用XFtp把上面导出的镜像文件上传到阿里云服务器 然后进入文件所在的目录 我们查看阿里云服务器上面有哪些镜像: 从上图中看出:现在阿里云服务器上面没有任何的镜像。 涉及到的导入命令load 接下来我们导入刚才上传的镜像。 如下图所示: 或者也可以使用下面的命令 其中-i(i即imput)和<表示从文件输入。上面的两个命令都会成功导入镜像以及相关元数据,包括tag信息。 导入后查看镜像: 可以看到有了我们刚才导入的镜像。导入了镜像以后就可以根据镜像运行容器,最后运行应用程序。 接下来我们演示容器的导入和导出。 涉及到的命令export。 我们把上面生成的容器导出: 如下图所示: 其中,-o表示输出的文件,这里指定了输出的路径,如果没有指定路径,则默认生成到当前文件夹。dockerdemocontainer.tar为目标文件,dockerdemo为源容器名。 我们查看目录下面是否生成了导出的容器: 我们首先把导出的容器使用XFTP上传到阿里云服务器。 涉及到的导入命令import。 如下图所示 dockerdemocontainer.tar表示要导入的容器,dockerdemo:imp表示导入后的镜像名称,imp表示给导入的镜像打tag。 如下图所示 然后我们查看镜像: 可以看到这时有我们刚才导入的镜像了,导入的镜像tag为imp。 下面我们来总结一下镜像和容器导入导出的区别: docker load不能对导入的镜像重命名,而docker import导入可以为镜像指定新名称。例如,上面导入的时候指定dockerdeom:imp。 对于是使用镜像导入导出还是使用容器导入导出该如何选择呢?有下面两点建议: 推荐学习:《docker视频教程》 以上就是docker镜像导入和导出是什么意思的详细内容,更多请关注gxlsystem.com其它相关文章!docker镜像导入和导出是什么意思
# 使用运行时镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
# 设置工作目录
WORKDIR /app
# 把目录下的内容都复制到当前目录下
COPY . .
# 暴露80端口
EXPOSE 80
# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]
docker build -t dockerdemo .
二、docker镜像的导入和导出
1、docker镜像的导出
docker save [options] images [images...]
docker save -o dockerdemo.tar dockerdemo
docker save > dockerdemo.tar dockerdemo
可以看到目录下面已经有了刚才导出的文件。
2、docker镜像的导入
docker load [options]
docker load -i dockerdemo.tar
docker load < dockerdemo.tar
三、docker容器的导入和导出
1、docker容器的导出
docker export [options] container
docker export -o D:\containers\dockerdemocontainer.tar dockerdemo
2、docker容器的导入
docker import [options] file|URL|- [REPOSITORY[:TAG]]
我们导入刚才上传的容器
docker import dockerdemocontainer.tar dockerdemo:imp
四、总结