设为首页 收藏本站
查看: 1167|回复: 0

[经验分享] Docker+.Net Core 的那些事儿-2.创建Docker镜像

[复制链接]

尚未签到

发表于 2017-12-6 23:12:18 | 显示全部楼层 |阅读模式
1.从store.docker.com获取.net core镜像



docker pull microsoft/dotnet
2.创建一个.net core项目,并发布
  在上篇文章结尾建立的工作目录下,执行



[iyunv@localhost docker_demo]# dotnet new mvc -o hwapp  //创建一个asp.net core mvc程序
[iyunv@localhost docker_demo]# cd hwapp
[iyunv@localhost hwapp]# dotnet restore  //还原nuget包
  执行



[iyunv@localhost hwapp]# vim Program.cs
  修改Program.cs代码:



using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;

namespace hwapp
{
  public class Program
  {
    public static void Main(string[] args)
    {
      var host = new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseUrls("http://*:5000")  //注意此处,需要添加端口绑定
        .UseStartup<Startup>()
        .Build();
      host.Run();
    }
  }
}
  保存后执行



[iyunv@localhost hwapp]# dotnet publish   //发布程序
  运行完毕后,会在bin/Debug/netcoreapp1.1/目录下生成publish文件夹。

3.创建Dockerfile并建立镜像
  在publish文件夹下,执行



[iyunv@localhost publish]# touch Dockerfile
[iyunv@localhost publish]# chmod 777 Dockerfile
[iyunv@localhost publish]# vim Dockerfile
  向Dockerfile中写入以下内容:



#基于 `microsoft/dotnet` 来构建我们的镜像
FROM microsoft/dotnet

#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中  
COPY . /publish

#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR /publish

#设置Docker容器对外暴露5000端口
EXPOSE 5000
#使用`dotnet hwapp.dll`来运行应用程序

CMD ["dotnet", "hwapp.dll", "--server.urls", "http://*:5000"]
  :wq保存。之后按照Dockerfile来建立镜像:



docker build -t hwapp .  //注意后面那个点,代表全部
  执行



docker images
  可以看到一个基于dotnet的属于自己的镜像。
DSC0000.png

  下篇文章会介绍如何创建容器并运行app。

QA:常见问题及解决办法
  1.docker pull 时报网络问题错误或者下载速度过慢,例如:
DSC0001.png

  A:使用国内docker加速器,比如阿里云或DaoCloud,下面以DaoCloud为例:
  注册一个账号,之后进入控制台,点加速器:
DSC0002.png

  进入之后会得到一个命令,但是千万不要放到centos中执行!!!命令如下
DSC0003.png

  但是后面的url是有用的,执行以下命令



[iyunv@localhost publish]# cd /etc/sysconfig
[iyunv@localhost sysconfig]# vim docker
  在OPTIONS中添加参数:



--registry-mirror=http://xxxxxxxx.m.daocloud.io
  其中url为加速器中提供的url。
  重启docker服务,重新执行docker pull即可。
  PS:如果执行了DaoCloud提供的命令,则可能会报:
DSC0004.png

  这个错误,这个时候通过安装docker-engine即可解决(本人没亲自试过...)
  还有如果在OPTIONS中的参数写错了,也是会报这个错误的。
  2.执行docker命令时报以下错误:
DSC0005.png

  A:重启docker服务即可。



service docker restart
  Docker+.Net Core 的那些事儿-3.创建容器并运行

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421502-1-1.html 上篇帖子: docker安装redis 指定配置文件且设置了密码 下篇帖子: 创建 Machine
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表