.NETCore Docker实现容器化与私有镜像仓库管理

2020-06-17 06:58:12易采站长站整理
提供了Docker的核心技术: 图像(images)和容器(containers). 在安装教程的最后一步, 你运行了Engine命令
docker run hello-world
. 这一个命令,使Engine完成了Docker的核心任务, 该命令包含了三部分.

c、一个容器是一个精简版的Linux操作系统, 一个镜像是加载到这个容器的软件, 当你运行这个命令后, Engine会做下面的事情:

1.检查是否存在hello-world这个软件镜像

2.从Docker Hub下载镜像(稍后了解Docker Hub)

3.加载这个镜像到容器中, 并运行它

三、.Netcore项目在Docker中运行

1、拉取microsoft/dotnet镜像,等几分钟后即可安装完毕,执行

docker images
可以看到本地已经包含microsoft/dotnet镜像

> docker pull microsoft/dotnet

2、运行microsoft/dotnet镜像, 使用

docker run <image>
可以启动镜像,通过指定参数-it以交互模式(进入容器内部)启动。依次执行以下命令:


> docker run -it microsoft/dotnet //启动一个dotnet镜像
> dotnet new mvc -n mvctest //创建项目名为mvctest的.NET Core MVC项目
> cd mvctest //进入mvctest文件夹
> dotnet run //启动.NET Core MVC项目

运行结果如下图所示:

键盘按住Ctrl+C即可关闭应用,输入exit即可退出当前容器

以上简单的几步就完成了一个.NET Core MVC项目的创建和运行,这个时候你可能会好奇,Linux宿主机上并没有安装.NET Core SDK啊,MVC项目是如何创建的呢?这就是Docker神奇的地方,我们从镜像仓库中拉取的dotnet镜像,包含了创建、构建、运行.NET Core项目所需的一切依赖和运行时环境。

退出容器之后,执行find -name mvctest(查找mvctest文件),我们发现并没有找到。这说明我们刚才创建的.NET Core MVC项目是在容器内部创建的,是与宿主机完全隔离的。这个时候你可能会想,每次都要在容器中安装源代码太不方便了,我们能不能让容器运行我们宿主机的源代码项目?嗯,这是个好问题。当然是可以实现的,下面我们就来解答这个问题。

四、 宿主机上创建.NET Core 项目

为了在宿主机上创建.NET Core 项目,这个时候我们就需要在Linux宿主机上安装.NET Core SDK

1、宿主机安装.NET Core SDK

添加yum源:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

开始安装:

yum install -y dotnet-sdk-2.1