Docker容器中开始.NETCore之路。Docker容器中开始.NETCore之路。

by admin on 2018年10月10日

一、引言

  开始勾画就首博客前,已经尝试练习了好勤Docker环境安装,.Net
Core环境安装了,在此地替腾讯谈做一个放开,假如我们纪念深造、练手.net core
或是Docker却闷没有开条件,服务器也未思进,那么我们得以使用腾讯云提供的开发者实验,每个实验型每天可免费用同一不好,时常45分钟,学习技能仅因看几乎首文章、几本书是意不够的,”实践着能够来真知“。

腾讯云开发者实验连接地址

 

仲、环境介绍

  以练平台及之条件是CentOS7.3版
或许你见面说自家不懂Linux怎么处置,没干,我哉是小白,学点基本命令暂时能就此起就是实施了。毕竟我们不是特别在Linux下整开发之。(Linux下专业人士见谅哈)。

  Docker容器,如果说Docker容器还非知底呀概念以来,我引进先暂停,先上下Docker的基本概念,弄清楚Docker是啊,总比更是看越繁杂好.

  dotnet镜像(也得以是aspnetcore镜像就二者的关系自将稍后解释).

  OK,开始动手!

 

老三、启动实验,安装Docker

  亚洲必赢手机 1

  我进入的搭建Docker环境,当然为足以由另外实验中启着手。从搭建Docker环境中入我们可以视要求的手续,方便我们快安装,仅此而已。 

  1、先来设置Docker环境

  yum install docker-io -y //CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可
  docker -v //查看docker的版本 version
  systemctl start docker.service //开启Docker服务
  systemctl enable docker.service //开机启动Docker服务

  亚洲必赢手机 2

  亚洲必赢手机 3

  安装Docker环境时需等一及少分钟……..安装收尾!

  接下去我们要用Docker服务拓展启动

  亚洲必赢手机 4

  到此处Docker环境的装就都结了。

 

   当然我们尚待配置Docker,开始布局DockerHub:

  echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
  systemctl daemon-reload //重新载入 systemd,扫描新的或有变动的单元
  systemctl restart docker.service //重启docker服务

 

 

四、安装.NETCore环境

  接下我们将生出半点栽方法来安装我们的.net
core环境

  方式一:在Docker容器中取dotnet镜像

  docker pull microsoft/dotnet //安装.net core镜像

 

  亚洲必赢手机 5

   这种措施供被了俺们.net
core的全套模板,编译工具,RunTime等等,一应俱全。

  我们可以通过docker命令查看我们曾经颇具的镜像,注意 即需要在Linux主机下查看,别跑至容器中去了

  docker images // 查看当前已有的docker镜像文件

 

  亚洲必赢手机 6

   当前令下我们得以看到dotnet镜像曾经被我们拉取下来了。OK

  继续,我们初步新建并运行一个坐dotnet镜像的容器

  docker run -it microsoft/dotnet //启动一个dotnet镜像

 

   亚洲必赢手机 7

  看root后面变化了没有,这说明我们已进来了一个器皿,Docker当新建一个器皿后,会吃这个容器分配一个id,也就是咱所见的那错字符串了。

   继续,通过命令新建一个web应用

  dotnet new mvc -n MyFirstDocker.Web //创建项目名为MyFirstDocker.Web的ASP.NET Core MVC项目

  亚洲必赢手机 8

  我们可以经过ls命令看到眼前容器被的享有文件夹信息,MyFirstDocker.Web项目既创造好了

  亚洲必赢手机 9

  在MyFirstDocker文件夹内,有过多咱们耳熟能详的事物

   亚洲必赢手机 10

  接下,通过命令启动项目

  dotnet run //启动项目

  亚洲必赢手机 11

   OK,大功告成,项目启动,由于试验环境并未得浏览器,我们只好看
哈哈 貌似是起一样栽方式可望页面 但自己还无学会 见谅哈

 

   通过命令exit退出时容器,查看时主机及曾部分容器实例

  docker ps -a // 查看当前的已存在的容器实例 (不考虑状态)

 

 

  在此间我们开如考虑长久计划了,假如自己得以新的文书在进来,我得以利用什么措施,在容器被装置一个git,pull新文件,或许可以,但是倘若说立刻尊主机及发生十独容器,都运作着服务,莫非自还得十只容器全部安git,基于此考虑,可以尝尝用生这种操作了。

  我在Linux主机中安装.NET Core
SDK

  首先开始布置安装包的根源

  sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  sudo sh -c 'echo -e "[packages-microsoft-com-prod]
  name=packages-microsoft-com-prod 
  baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
  enabled=1
  gpgcheck=1
  gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

  亚洲必赢手机 12

  接下去开始安装.net-sdk,版本2.0.3,这个过程耗时比长,需要耐心等

  sudo yum update
  sudo yum -y install libunwind libicu
  sudo yum install dotnet-sdk-2.1.3

   好了,开始连下去的操作了

  cd /home 
  mkdir aspnetcoreapp
  cd aspnetcoreapp
  dotnet new web
  dotnet restore
  dotnet run

   亚洲必赢手机 13

  通过直接开行,也是足以一直运行起来的,但是毫无疑问是无引进的啊,毕竟Docker这么好用 
哈哈

  亚洲必赢手机 14

  接下去让Linux主机上的文书可以共享文件及Docker容器中,这样一来我们好一直在Docker中采用Linux主机文件,然后运行起来,当有文件改动,只需要更新Linux主机上的公文即可。这里会见遇到一个问题,就是显著一度为此了共享目录的指令,但是Docker容器中并没有那些文件,这是由selinux的因,我之缓解方案便是当
-v加上一个–privileged=true,当然这个方案吗是乘度娘得知的。

  当前Docker容器中早已发生矣共享目录亚洲必赢手机下的公文,可能会见待dotnet
restore然后可以据此dotnet run进行启动

   亚洲必赢手机 15

 

  方式二:在Docker容器中落aspnetcore镜像

  docker pull microsoft/aspnetcore //安装asp.net core镜像

 

  亚洲必赢手机 16

  查看时已经部分镜像,成功安装了aspnetcore镜像

  亚洲必赢手机 17

  同样与前的操作一样,我们根据该镜像新建一个器皿

  docker run -it microsoft/aspnetcore //运行一个以aspnetcore为镜像的容器 

  同新建一个运用,但是会发觉这个利用不克打响,提示我们无SDK

  dotnet new mvc -n HelloDocker.Web //创建项目名为HelloDocker.Web的ASP.NET Core MVC项目

  亚洲必赢手机 18

   

  在此间我只要诠释下dotnet镜像与aspnetcore镜像是呀关系:

   在dockerhub官网中装有dotnet和aspnetcore的镜像,dotnet可以当作是集大成者,包含了.netcore控制台aspnetcore的具备,而aspnetcore是坐dotnet镜像为底蕴,在aspnetcore中不过含了RunTime和构建当前种也镜像的家伙,这吗即表示要我们而一直下aspnetcore为镜像,我们的种类是如果就编译好了之,才方可一直采用这个镜像。

  而当你下dotnet镜像时,包含了编译工具,Runtime,一切的全部,这为激素dotnet镜像比aspnetcore镜像大这么多的来由了。

  亚洲必赢手机 19

   可以行使方式同样尾声在Linux下编译好之档次,同样用共享目录的法共享到发出aspnetcore镜像的Docker容器中,这样我们便可以直接飞起了。由于岁月关系没有品味,下次会尝试一下。

  这样做的裨益是以支付条件面临编译好的色我们得一直用来之所以,Docker容器中单独需要周转时环境就可了。

 

 

 五、DockerFile文件的意图

  dockerFile可是好东西,好比如说用在武功秘籍,一招一式照在开。

  一般是于品种中构筑好一个dockerfile文件,然后在内部写上我们的渴求

  FROM microsoft/dotnet:latest
  WORKDIR /app
  COPY . /app
  RUN dotnet restore
  EXPOSE 5000
  ENV ASPNETCORE_URLS http://*:5000
  ENTRYPOINT ["dotnet","run"]

 

   通过命令将dockerfile文件运行,将全体项目由包改成镜像,我们得使docker
images可以观看这转变的新镜像

  docker build -t mydockerimage .

 

   如果我们需要使用这个镜像,我们得一直当创造容器时指定这个镜像,生成之后的条件以及公从包的镜像是一样的

   最后谢谢博友的稿子参考,半只不解的早晚正好看到就首文章,很顺畅的解决了一个题目。

  @圣杰 http://www.cnblogs.com/sheng-jie/p/8107877.html

 

  新春佳节之际,在此祝愿大家  新年大吉大利
大吉大利。

 

2018-1-1,望技术有成后能回来看见自己的脚步

 

一、引言

  开始勾画这首博客前,已经尝试练习了好勤Docker环境安装,.Net
Core环境安装了,在此地替腾讯谈做一个放大,假如我们怀念上学、练手.net core
或是Docker却苦于没有开环境,服务器也不思进,那么我们得以利用腾讯云提供的开发者实验,每个实验型每天足免费应用同样不好,时常45分钟,学习技术就因看几篇稿子、几本书是完全不够的,”实践着会产生真知“。

腾讯云开发者实验连接地址

 

第二、环境介绍

  在演习平台上的条件是CentOS7.3版
或许你见面说我不懂Linux怎么处置,没干,我啊是小白,学点基本命令暂时能用起就是尽了。毕竟我们不是专门以Linux下整开发的。(Linux下专业人士见谅哈)。

  Docker容器,如果说Docker容器还无亮堂啊概念的话,我推荐先暂停,先修下Docker的基本概念,弄清楚Docker是什么,总比更看越乱好.

  dotnet镜像(也得是aspnetcore镜像就二者的干自将稍后解释).

  OK,开始着手!

 

其三、启动实验,安装Docker

  亚洲必赢手机 20

  我进去的搭建Docker环境,当然为堪起另外实验中初露着手。从搭建Docker环境中入我们好观看要求的步骤,方便我们快安装,仅此而已。 

  1、先来安Docker环境

  yum install docker-io -y //CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可
  docker -v //查看docker的版本 version
  systemctl start docker.service //开启Docker服务
  systemctl enable docker.service //开机启动Docker服务

  亚洲必赢手机 21

  亚洲必赢手机 22

  安装Docker环境时需等一及片分钟……..安装收尾!

  接下去我们用拿Docker服务进行启动

  亚洲必赢手机 23

  到此地Docker环境的安就已经完结了。

 

   当然我们尚亟需配备Docker,开始布局DockerHub:

  echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
  systemctl daemon-reload //重新载入 systemd,扫描新的或有变动的单元
  systemctl restart docker.service //重启docker服务

 

 

四、安装.NETCore环境

  接下我们用发半点种艺术来装我们的.net
core环境

  方式一:在Docker容器中取dotnet镜像

  docker pull microsoft/dotnet //安装.net core镜像

 

  亚洲必赢手机 24

   这种措施提供给了俺们.net
core的所有模板,编译工具,RunTime等等,一应俱全。

  我们可以通过docker命令查看我们就具有的镜像,注意 立刻需要在Linux主机下查看,别跑至容器中失了

  docker images // 查看当前已有的docker镜像文件

 

  亚洲必赢手机 25

   当前令下我们得以望dotnet镜像曾经被我们拉取下来了。OK

  继续,我们初步新建并运行一个为dotnet镜像的器皿

  docker run -it microsoft/dotnet //启动一个dotnet镜像

 

   亚洲必赢手机 26

  看root后面变化了从未有过,这证明我们早已跻身了一个容器,Docker当新建一个器皿后,会为此容器分配一个id,也不怕是我们所见的那错字符串了。

   继续,通过命令新建一个web应用

  dotnet new mvc -n MyFirstDocker.Web //创建项目名为MyFirstDocker.Web的ASP.NET Core MVC项目

  亚洲必赢手机 27

  我们得以经过ls命令看到眼前容器中之享有文件夹信息,MyFirstDocker.Web项目现已创办好了

  亚洲必赢手机 28

  以MyFirstDocker文件夹内,有成百上千咱耳熟能详的事物

   亚洲必赢手机 29

  接下,通过命令启动项目

  dotnet run //启动项目

  亚洲必赢手机 30

   OK,大功告成,项目启动,由于试验环境尚未得浏览器,我们不得不看
哈哈 貌似是产生同栽方法可看来页面 但我还从来不学会 见谅哈

 

   通过命令exit退出时容器,查看时主机上业已有的容器实例

  docker ps -a // 查看当前的已存在的容器实例 (不考虑状态)

 

 

  于这边我们开如考虑长久计划了,假如我要用新的文本参加进来,我得以采取什么办法,在容器被安装一个git,pull新文件,或许可以,但是要说就令主机及生十个容器,都运行在劳动,莫非自还得十只容器全部安git,基于这个考虑,可以尝尝用生这种操作了。

  我当Linux主机中安装.NET Core
SDK

  首先开始部署安装包的源

  sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  sudo sh -c 'echo -e "[packages-microsoft-com-prod]
  name=packages-microsoft-com-prod 
  baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
  enabled=1
  gpgcheck=1
  gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

  亚洲必赢手机 31

  接下去开始安装.net-sdk,版本2.0.3,这个进程耗时比较丰富,需要耐心等待

  sudo yum update
  sudo yum -y install libunwind libicu
  sudo yum install dotnet-sdk-2.1.3

   好了,开始接入下的操作了

  cd /home 
  mkdir aspnetcoreapp
  cd aspnetcoreapp
  dotnet new web
  dotnet restore
  dotnet run

   亚洲必赢手机 32

  通过一直开行,也是可以一直运行起来的,但是得是免推荐的哇,毕竟Docker这么好用 
哈哈

  亚洲必赢手机 33

  接下去让Linux主机上之文书可以共享文件及Docker容器中,这样一来我们可一直当Docker中行使Linux主机文件,然后运行起来,当起文件改动,只待更新Linux主机上的文本即可。这里会见遇上一个问题,就是鲜明已经用了共享目录的命,但是Docker容器中连无那些文件,这是由于selinux的由来,我的化解方案就是是在
-v加上一个–privileged=true,当然这方案为是依靠度娘得知的。

  当前Docker容器中早就发矣共享目录下的文本,可能会见需要dotnet
restore然后得以就此dotnet run进行启动

   亚洲必赢手机 34

 

  方式二:在Docker容器中获aspnetcore镜像

  docker pull microsoft/aspnetcore //安装asp.net core镜像

 

  亚洲必赢手机 35

  查看时已局部镜像,成功安装了aspnetcore镜像

  亚洲必赢手机 36

  同样与前面的操作一样,我们根据该镜像新建一个器皿

  docker run -it microsoft/aspnetcore //运行一个以aspnetcore为镜像的容器 

  同新建一个运用,但是会发觉这利用不能够得逞,提示我们从来不SDK

  dotnet new mvc -n HelloDocker.Web //创建项目名为HelloDocker.Web的ASP.NET Core MVC项目

  亚洲必赢手机 37

   

  以此自己而诠释下dotnet镜像与aspnetcore镜像是啊关系:

   在dockerhub官网中备dotnet和aspnetcore的镜像,dotnet可以当是集大成者,包含了.netcore控制台aspnetcore的有着,而aspnetcore是以dotnet镜像啊底蕴,在aspnetcore中只是含了RunTime和构建当前档也镜像的家伙,这也尽管表示如果我们如果一直行使aspnetcore为镜像,我们的门类是设都编译好了的,才得直接以这个镜像。

  而当你利用dotnet镜像时,包含了编译工具,Runtime,一切的满,这吗激素dotnet镜像比aspnetcore镜像那个这么多之案由了。

  亚洲必赢手机 38

   可以应用方式同样末段以Linux下编译好之类型,同样用共享目录的方共享到出aspnetcore镜像的Docker容器中,这样我们就是可直接飞起了。由于时日涉及没有品味,下次会尝试一下。

  这样做的功利是在支付环境遭受编译好之档次我们得以直接拿来之所以,Docker容器中单待周转时环境就是可了。

 

 

 五、DockerFile文件之用意

  dockerFile可是好东西,好比如说用在武功秘籍,一招一式照在开。

  一般是当路面临盖好一个dockerfile文件,然后以其间写上我们的渴求

  FROM microsoft/dotnet:latest
  WORKDIR /app
  COPY . /app
  RUN dotnet restore
  EXPOSE 5000
  ENV ASPNETCORE_URLS http://*:5000
  ENTRYPOINT ["dotnet","run"]

 

   通过命令将dockerfile文件运行,将全部项目于包改成镜像,我们得以行使docker
images可以看来这转变的新镜像

  docker build -t mydockerimage .

 

   如果我们需要动用这个镜像,我们得以一直在开创容器时指定这个镜像,生成之后的条件及汝于包的镜像是平等的

   最后谢谢博友的篇章参考,半只不解的上正看到就首文章,很顺畅的缓解了一个题材。

  @圣杰 http://www.cnblogs.com/sheng-jie/p/8107877.html

 

  新春关,在这祝愿大家  新年红
大吉大利。

 

2018-1-1,望技术有成后能回来看见自己的脚步

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图