先读书下Docker的基本概念,先读书下Docker的基本概念365体育网投

一、引言

  起初写这篇博客前,已经尝试磨练过好多次Docker环境安装,.Net
Core环境安装了,在此间替腾讯云做一个拓宽,假使大家想深造、练手.net core
或是Docker却苦于没有支付环境,服务器也不想买,那么大家得以应用腾讯云提供的开发者实验,每个实验项目天天可以免费使用一回,时常45分钟,学习技能单靠看几篇作品、几本书是完全不够的,”实践方能出真知“。

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

 

二、环境介绍

  在操练平台上的条件是CentOS7.3版
或许你会说自家不懂Linux咋做,没涉及,我也是小白,学点基本命令暂时能用起来就行了。毕竟大家不是特目的在于Linux下搞开发的。(Linux下专业人士见谅哈)。

  Docker容器,尽管说Docker容器还不知底怎样概念以来,我引进先暂停,先读书下Docker的基本概念,弄清楚Docker是何许,总比越看越繁杂好.

  dotnet镜像(也能够是aspnetcore镜像这二者的关系我将稍后解释).

  OK,开端出手!

 

三、启动实验,安装Docker

  365体育网投 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服务

  365体育网投 2

  365体育网投 3

  安装Docker环境时需要拭目以待一到两分钟……..安装收尾!

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

  365体育网投 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镜像

 

  365体育网投 5

   这种措施提供给了大家.net
core的全套模板,编译工具,Run提姆e等等,一应俱全。

  我们得以经过docker命令查看我们早已有所的镜像,注意 这需要在Linux主机下查看,别跑到容器中去了

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

 

  365体育网投 6

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

  继续,我们最先新建并运行一个以dotnet镜像的容器

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

 

   365体育网投 7

  看到root后边变化了没,这讲明我们早已跻身了一个容器,Docker当新建一个器皿后,会给这多少个容器分配一个id,也就是我们所看见的这串字符串了。

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

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

  365体育网投 8

  大家可以透过ls命令看到眼前容器中的所有文件夹消息,MyFirstDocker.Web项目已经创办好了

  365体育网投 9

  在MyFirstDocker文件夹内,有许多我们熟稔的东西

   365体育网投 10

  接下去,通过命令启动项目

  dotnet run //启动项目

  365体育网投 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'

  365体育网投 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

   365体育网投 13

  通过直接开行,也是足以一贯运行起来的,然而一定是不推荐的哇,毕竟Docker这么好用 
哈哈

  365体育网投 14

  接下去让Linux主机上的公文可以共享文件到Docker容器中,这样一来我们可以直接在Docker中应用Linux主机文件,然后运行起来,当有文件改动,只需要更新Linux主机上的公文即可。这里会遇上一个问题,就是掌握一度用了共享目录的下令,但是Docker容器中并不曾这一个文件,这是由于selinux的原委,我的缓解方案就是在
-v加上一个–privileged=true,当然这多少个方案也是靠度娘得知的。

  当前Docker容器中早已有了共享目录下的文书,可能会需要dotnet
restore然后可以用dotnet run举办启动

   365体育网投 15

 

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

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

 

  365体育网投 16

  查看当前早就有的镜像,成功安装了aspnetcore镜像

  365体育网投 17

  同样和前面的操作一样,我们按照该镜像新建一个器皿

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

  同样新建一个利用,可是会意识这么些动用不可能打响,提醒我们没有SDK

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

  365体育网投 18

   

  在此间自己要分解下dotnet镜像和aspnetcore镜像是什么关系:

   在dockerhub官网中负有dotnet和aspnetcore的镜像,dotnet可以作为是集大成者,包含了.netcore控制台aspnetcore的具有,而aspnetcore是以dotnet镜像为根基,在aspnetcore中只包含了Run提姆e和构建当前项目为镜像的工具,这也就代表即使我们要直接使用aspnetcore为镜像,大家的花色是要已经编译好了的,才可以直接运用这些镜像。

  而当您接纳dotnet镜像时,包含了编译工具,Runtime,一切的整套,这也激素dotnet镜像比aspnetcore镜像大这么多的原因了。

  365体育网投 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

  365体育网投 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服务

  365体育网投 21

  365体育网投 22

  安装Docker环境时索要等待一到两分钟……..安装完毕!

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

  365体育网投 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镜像

 

  365体育网投 24

   这种艺术提供给了我们.net
core的方方面面模板,编译工具,Run提姆(Tim)e等等,一应俱全。

  我们可以透过docker命令查看大家早就持有的镜像,注意 这亟需在Linux主机下查看,别跑到容器中去了

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

 

  365体育网投 25

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

  继续,大家初始新建并运行一个以dotnet镜像的器皿

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

 

   365体育网投 26

  看到root后边变化了没,这注脚我们已经进来了一个容器,Docker当新建一个器皿后,会给这多少个容器分配一个id,也就是我们所看见的这串字符串了。

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

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

  365体育网投 27

  我们能够经过ls命令看到眼前容器中的所有文件夹消息,MyFirstDocker.Web项目早就创建好了

  365体育网投 28

  在MyFirstDocker文件夹内,有为数不少我们耳熟能详的事物

   365体育网投 29

  接下去,通过命令启动项目

  dotnet run //启动项目

  365体育网投 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'

  365体育网投 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

   365体育网投 32

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

  365体育网投 33

  接下去让Linux主机上的文件可以共享文件到Docker容器中,那样一来我们能够直接在Docker中利用Linux主机文件,然后运行起来,当有文件改动,只需要更新Linux主机上的文件即可。这里会碰着一个题目,就是明显曾经用了共享目录的吩咐,不过Docker容器中并没有这么些文件,那是出于selinux的因由,我的化解方案就是在
-v加上一个–privileged=true,当然这么些方案也是靠度娘得知的。

  当前Docker容器中一度有了共享目录下的文本,可能会需要dotnet
restore然后方可用dotnet run举办启动

   365体育网投 34

 

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

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

 

  365体育网投 35

  查看当前一度局部镜像,成功安装了aspnetcore镜像

  365体育网投 36

  同样和眼前的操作一样,咱们依据该镜像新建一个容器

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

  同样新建一个行使,不过会发觉那几个利用不可能得逞,提醒咱们尚无SDK

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

  365体育网投 37

   

  在此处自己要分解下dotnet镜像和aspnetcore镜像是什么关系:

   在dockerhub官网中具有dotnet和aspnetcore的镜像,dotnet可以作为是集大成者,包含了.netcore控制台aspnetcore的持有,而aspnetcore是以dotnet镜像为根基,在aspnetcore中只包含了RunTime和构建当前项目为镜像的工具,那也就代表假设我们要直接动用aspnetcore为镜像,大家的品类是要已经编译好了的,才可以直接利用这些镜像。

  而当你利用dotnet镜像时,包含了编译工具,Runtime,一切的一切,这也激素dotnet镜像比aspnetcore镜像大这么多的原故了。

  365体育网投 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,望技术有成后能回来看见自己的脚步

 

相关文章