Docker容器中开端.NETCore之路

效果图:

一、引言

  起头写这篇博客前,已经尝试锻练过好多次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的漫天模板,编译工具,Run提姆(Tim)e等等,一应俱全。

  我们得以因此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中只含有了Run提姆(Tim)e和构建当前项目为镜像的工具,这也就代表一旦我们要从来利用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,望技术有成后能回来看见自己的脚步

 

图片 20

 

下载链接:创设wpf项目引用 如下:链接:http://pan.baidu.com/s/1chj1nS
密码:u7y2

 

首先步:创建项目引用CefSharp

图片 21

 

第二步:第二步将DLL拷贝到运行品种的Debug下

图片 22

其三步:项目平台安装32位

图片 23

 

第四步:创造录像文件与html脚本

图片 24

 

 

第五步:Xaml后台绑定Cef夏普 webBrowser的url地址

图片 25