Docker容器中开始.NETCore之路

效果图:

一、引言

  开始勾画这篇博客前,已经尝试练习了好勤Docker环境安装,.Net
Core环境安装了,在此间替腾讯谈做一个加大,假如我们纪念学、练手.net core
或是Docker却闷没有开条件,服务器也不思量买,那么我们可使腾讯云提供的开发者实验,每个实验型每天足免费使用相同破,时常45分钟,学习技能就因看几乎篇稿子、几本书是完全不够的,”实践着会来真知“。

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

 

仲、环境介绍

  以练平台达成的环境是CentOS7.3版
或许你会说我不懂Linux怎么惩罚,没涉及,我耶是小白,学点基本命令暂时能为此起来就是实行了。毕竟我们无是特别在Linux下将开发之。(Linux下专业人士见谅哈)。

  Docker容器,如果说Docker容器还无明了啊概念的话,我推荐先暂停,先修下Docker的基本概念,弄清楚Docker是呀,总比更看更繁杂好.

  dotnet镜像(也足以是aspnetcore镜像这两边的干自拿稍后解释).

  OK,开始下手!

 

老三、启动实验,安装Docker

  

  我进去的搭建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服务

  

  

  安装Docker环境时用等待一届零星分钟……..安装完毕!

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

  

  到此地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镜像

 

  

   这种艺术供于了俺们.net
core的布满模板,编译工具,RunTime等等,一应俱全。

  我们好透过docker命令查看我们曾持有的镜像,注意 立即要在Linux主机下查看,别跑至容器中失去了

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

 

  

   当前令下我们可以看dotnet镜像已让我们拉取下来了。OK

  继续,我们开新建并运行一个缘dotnet镜像的容器

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

 

   

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

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

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

  

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

  

  以MyFirstDocker文件夹内,有不少我们耳熟能详的物

   

  接下,通过命令启动项目

  dotnet run //启动项目

  

   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'

  

  接下去开始安装.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

   

  通过直接开行,也是得一直运行起来的,但是一定是不引进的哪,毕竟Docker这么好用 
哈哈

  

  接下去让Linux主机上之文书可以共享文件及Docker容器中,这样一来我们可一直以Docker中使用Linux主机文件,然后运行起来,当起文件改动,只待更新Linux主机上之公文即可。这里会见遇上一个问题,就是不言而喻就用了共享目录的通令,但是Docker容器中连不曾那些文件,这是由于selinux的原因,我之缓解方案虽是在
-v加上一个–privileged=true,当然这方案吧是乘度娘得知的。

  当前Docker容器中曾经来矣共享目录下的文本,可能会见待dotnet
restore然后方可用dotnet run进行启动

   

 

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

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

 

  

  查看时早就有镜像,成功安装了aspnetcore镜像

  

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

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

  同新建一个使用,但是会发现是动用不可知成,提示我们没SDK

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

  

   

  于此我而解释下dotnet镜像和aspnetcore镜像是啊关系:

   在dockerhub官网中富有dotnet和aspnetcore的镜像,dotnet可以当做是集大成者,包含了.netcore控制台aspnetcore的富有,而aspnetcore是因dotnet镜像吗根基,在aspnetcore中不过含有了RunTime和构建当前项目为镜像的家伙,这为即代表一旦我们要直接使用aspnetcore为镜像,我们的种类是若都编译好了的,才足以一直行使是镜像。

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

  

   可以动用方式一样说到底当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,望技术有成后能回来看见自己的脚步

 

 

下充斥链接:创建wpf项目援 如下:链接:http://pan.baidu.com/s/1chj1nS
密码:u7y2

 

第一步:创建项目援CefSharp

 

其次步:第二步用DLL拷贝到运行项目之Debug下

老三步:项目平台安装32各

 

季步:创建视频文件与html脚本

 

 

第五步:Xaml后台绑定CefSharp webBrowser的url地址