Docker:docker镜像与容器的导入和导出

一、前言

随着容器技术的发展,现在很多的应用程序系统都会选择使用docker容器进行部署,但是有时候使用docker容器进行部署的时候会遇到问题,比如说我们的应用程序里面需要依赖其他第三方的镜像,如果这时候服务器是在内网不能连接外网的情况下,那么就无法部署了。基于这种情况,docker官方支持docker镜像和容器的导入和导出,我们可以在一台能够联网的机器上面编译镜像,然后导出镜像或者容器,最后把导出的镜像或者容器上传到内网服务器,然后在导入镜像或者容器,这样就可以了。

镜像和容器的导入、导出操作主要涉及到下面的几个命令:save、load、export、import。

演示过程中我们是在本地生成镜像或者容器,然后把镜像或者容器导出,最后上传到阿里云服务器演示导入功能。

我们使用VS 2019创建一个ASP.NET Core MVC的项目,添加Dockerfile文件:

使用运行时镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
设置工作目录
WORKDIR /app
把目录下的内容都复制到当前目录下
COPY . .
暴露80端口
EXPOSE 80
运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

然后发布项目。我们查看现有的docker镜像

Docker:docker镜像与容器的导入和导出
docker build -t dockerdemo .

如下图所示:

Docker:docker镜像与容器的导入和导出

查看生成后的镜像

Docker:docker镜像与容器的导入和导出

然后我们根据生成的镜像来运行容器,首先查看现有的容器:

Docker:docker镜像与容器的导入和导出

可以看到这时没有任何容器。我们运行容器:

Docker:docker镜像与容器的导入和导出

可以看到:容器已经运行成功了。

二、docker镜像的导入和导出

1、docker镜像的导出

涉及到的命令:

docker save [options]  images [images...]

我们使用上面的镜像来演示镜像的导出:

docker save -o dockerdemo.tar  dockerdemo

如下图所示:

Docker:docker镜像与容器的导入和导出

这里导出的时候指定了导出后文件的路径,如果不指定路径,默认是当前文件夹。

或者也可以使用下面的命令导出:

docker save > dockerdemo.tar dockerdemo

其中-o和>表示输出到文件,dockerdemo.tar为导出的目标文件,dockerdemo为源镜像名。

我们查看本地是否有了导出后的文件:

Docker:docker镜像与容器的导入和导出

2、docker镜像的导入

我们首先使用XFtp把上面导出的镜像文件上传到阿里云服务器

Docker:docker镜像与容器的导入和导出

然后进入文件所在的目录

Docker:docker镜像与容器的导入和导出

我们查看阿里云服务器上面有哪些镜像:

Docker:docker镜像与容器的导入和导出

从上图中看出:现在阿里云服务器上面没有任何的镜像。

涉及到的导入命令load

docker load [options]

接下来我们导入刚才上传的镜像。

docker load -i dockerdemo.tar

如下图所示:

Docker:docker镜像与容器的导入和导出

或者也可以使用下面的命令

docker load < dockerdemo.tar

其中-i(i即imput)和

Original: https://www.cnblogs.com/dotnet261010/p/13283176.html
Author: .NET开发菜鸟
Title: Docker:docker镜像与容器的导入和导出

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/534365/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球