Docker部署NETCORE应用程序

创建.netcore项目,本文以ASP.NET Core2.2 版本为例

设置Dockerfile属性始终复制

编辑Dockerfile内容

  1. FROM microsoft/dotnet:2.2-aspnetcore-runtime
  2. MAINTAINER lihongyuan
  3. LABEL description="this is a test website"
  4. LABEL version="1.0"
  5. WORKDIR /app
  6. COPY . .
  7. EXPOSE 8888
  8. ENTRYPOINT ["dotnet", "ProjNetCore2.dll"]

说明:

  1. FROM microsoft/dotnet:2.2-aspnetcore-runtime  #基础镜像为dotnetcore
  2. MAINTAINER demo                    #作者
  3.  
  4. LABEL description="this is a test website"  #描述
  5. LABEL version="1.0"                 #描述
  6.  
  7. WORKDIR /app                    #工作目录
  8. COPY . .                      #将当前目录下的文件,复制到WORKDIR目录
  9. EXPOSE 8888                    #容器暴漏8888端口,与Program.cs中设置的端口一致
  10. ENTRYPOINT ["dotnet","demo.dll"]      #运行容器的命令

修改Program.cs文件,默认端口的指向为 8888 与Dockerfile 文中一致。

  1. public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  2. WebHost.CreateDefaultBuilder(args)
  3. .UseUrls("http://*:8888")
  4. .UseStartup<Startup>();

发布项目

使用WinSCP 把发布后的项目上传到 服务器上。

些处上传目录为 /tmp/web

  1. [root@localhost ~]# cd /tmp/web/
  2. [root@localhost web]#
  3. [root@localhost web]# ls
  4. publish
  5. [root@localhost web]#

根据当前目录下dockerfile配置文件,进行打包(demo 为自己定义的镜像名)

  1. docker build -t demo .
  1. [root@localhost ~]#
  2. [root@localhost ~]# cd /tmp/web/publish/
  3. [root@localhost publish]# ls
  4. appsettings.Development.json Dockerfile ProjNetCore2.dll ProjNetCore2.runtimeconfig.json ProjNetCore2.Views.pdb wwwroot
  5. appsettings.json ProjNetCore2.deps.json ProjNetCore2.pdb ProjNetCore2.Views.dll web.config
  6. [root@localhost publish]#
  7. [root@localhost publish]# docker build -t imagedemo .
  8. Sending build context to Docker daemon .212MB
  9. Step / : FROM microsoft/dotnet:2.2-aspnetcore-runtime
  10. ---> ccf4063f0898
  11. Step / : MAINTAINER lihongyuan
  12. ---> Running in 176e4b1eba2b
  13. Removing intermediate container 176e4b1eba2b
  14. ---> 5d384a0303f9
  15. Step / : LABEL description="this is a test website"
  16. ---> Running in 09664d85b4dd
  17. Removing intermediate container 09664d85b4dd
  18. ---> e9890e799c19
  19. Step / : LABEL version="1.0"
  20. ---> Running in 93724ba2ac89
  21. Removing intermediate container 93724ba2ac89
  22. ---> b91ff0f19154
  23. Step / : WORKDIR /app
  24. ---> Running in 338a59ca24b3
  25. Removing intermediate container 338a59ca24b3
  26. ---> 64098342a151
  27. Step / : COPY . .
  28. ---> 26ab61b0731b
  29. Step / : EXPOSE
  30. ---> Running in 4c0ee7ff2687
  31. Removing intermediate container 4c0ee7ff2687
  32. ---> 5760b9754387
  33. Step / : ENTRYPOINT ["dotnet", "ProjNetCore2.dll"]
  34. ---> Running in 979a9b8c68b3
  35. Removing intermediate container 979a9b8c68b3
  36. ---> 5ae0691c4556
  37. Successfully built 5ae0691c4556
  38. Successfully tagged imagedemo:latest
  39. [root@localhost publish]#

打镜像成功:

  1. [root@localhost publish]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. imagedemo latest 5ae0691c4556 About a minute ago 265MB
  4. nginx latest 540a289bab6c weeks ago 126MB
  5. microsoft/dotnet 2.2-aspnetcore-runtime ccf4063f0898 weeks ago 261MB
  6. nginx <none> ab56bba91343 weeks ago 126MB
  7. rancher/rancher-agent v2.2.8 d499bdb8fd09 months ago 285MB
  8. rancher/rancher latest 59caa36aff1e months ago 482MB
  9. rancher/rke-tools v0.1.42 6fb74f33a5e1 months ago 131MB
  10. rancher/hyperkube v1.14.6-rancher1 4c0a26e51da8 months ago .05GB
  11. sonatype/nexus3 latest 35ca857d5b19 months ago 599MB
  12. rancher/nginx-ingress-controller 0.21.-rancher3 2b37f252629b months ago 569MB
  13. rancher/kube-api-auth v0.1.3 2817cb463960 months ago 149MB
  14. rancher/coredns-coredns 1.3. eb516548c180 months ago .3MB
  15. rancher/calico-node v3.4.0 a89b45f36d5e months ago .9MB
  16. rancher/calico-cni v3.4.0 d531d047a4e2 months ago .4MB
  17. rancher/coreos-etcd v3.3.10-rancher1 643c21638c1c months ago .5MB
  18. rancher/cluster-proportional-autoscaler 1.3. 33813c948942 months ago .8MB
  19. rancher/nginx-ingress-controller-defaultbackend 1.5-rancher1 b5af743e5984 months ago .13MB
  20. rancher/metrics-server v0.3.1 61a0c90da56e months ago .8MB
  21. rancher/coreos-flannel v0.10.0 f0fad859c909 months ago .6MB
  22. rancher/pause 3.1 da86e6ba6ca1 months ago 742kB
  23. [root@localhost publish]#

运行Docker容器

  1. docker run --name mydemo -d -p : imagedemo

说明:

--name 后面跟容器名称

-p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)

-d命令,容器就会一直运行,即使关掉终端窗口

imagedemo为前面生成的项目镜像

以后台模式启动一个容器,将容器的 8888 端口映射到主机的 8888 端口

运行后,可查看到新的容器:

访问网站:http://192.168.122.199:8888/

完成!

Docker 进入容器命令:

  1. docker exec -it 775c7c9ee1e1 /bin/bash

退出容器:exit

参考:https://www.cnblogs.com/hyunbar/p/10277100.html

Docker部署NETCORE应用程序的更多相关文章

  1. 【转载】如何使用docker部署c/c++程序

    原文地址:https://blog.csdn.net/len_yue_mo_fu/article/details/80189035 Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交 ...

  2. Docker部署Python应用程序

    Docker部署Python应用程序 1. 单个py文件部署 生成Dockerfile 文件 插件用的豆瓣的镜像,,重置时间(容器的默认时间是UTC时间与宿主机的相差8小时). 文中需要三个插件(pe ...

  3. Docker部署netcore web实践

    1. 新建一个netcore的项目 2. 我们到项目的生成输出目录下,创建一个Dockerfile文件 3. 编辑Dockerfile文件 备注:红线圈住的地方,就是你生成的netcore的程序名称 ...

  4. docker 部署net core程序 curl访问地址 提示 Connection reset by peer

    最近研究netcore 部署到docker上.在参考https://www.cnblogs.com/subendong/p/8992285.html教程之后,部署成功.但是curl访问对应的主机端口地 ...

  5. docker部署netcore应用(二)

    基于第一章已经安装好了docker,这次将把netcore应用部署到docker容器中 开发工具vs2017,准备个DotNet Core的Console应用程序,测试一下 发布DockerTest项 ...

  6. Centos 中使用通过docker 部署.netcore

    此前,我一直觉得,目前网络上的各种各样的技术文章.技术文档已经足够多,任何一种技术,都可以或多或少的在网络上找到教程,或者在qq群里找到前辈解答.所以,我觉得自己在博客上写文章的意义甚少.甚至觉得自己 ...

  7. CentOS利用Nginx+Docker部署.netcore应用

    安装docker 官方文档https://docs.docker.com/engine/installation/linux/docker-ce/centos/ [root@sn ~]# yum re ...

  8. docker 部署一个 aspnetmvc 程序

    准备mvc的程序[asp.net mvc5 网站]  使用刚才创建的镜像,并把上诉文件目录挂载到iis指定磁盘docker run -d -p 83:80 --name docker-drgs -v  ...

  9. docker 部署netcore 的关键语句

    网站容器:docker run -it --name myTestWeb -p 8080:80 -v /mnt/hgfs/my_share/core/website/:/website microso ...

随机推荐

  1. 【LOJ2542】「PKUWC2018」随机游走

    题意 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...

  2. CSS-text-intent

    text-indent:[ <length> | <percentage> ] && ? && ? 默认值:0 适用于:块容器 继承性:有 动画 ...

  3. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:包装类

    public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i ...

  4. P1076 Wifi密码

    P1076 Wifi密码 转跳点:

  5. Python入门必学知识,30万年薪Python工程师带你学

    Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...

  6. DirectX9完全面向对象框架

    #pragma once #define UNICODE //Direct3D lib #include<d3d9.h> #include<d3dx9.h> #pragma c ...

  7. 15.Pythonic与python杂记

    switcher ={ :'sunday', :'monday', :'thuesday' } day = day_name=switcher.get(day,'Unknow') print(day_ ...

  8. 055、Java中使用for循环输出乘法口诀表

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  9. 修正png

    这是修正+取MD5的方法 function MD5FileTextPng(filename: AnsiString): AnsiString; var buf: ..MAX_PATH - ] of C ...

  10. Python 日志模块详解

    前言 我们知道查看日志是开发人员日常获取信息.排查异常.发现问题的最好途径,日志记录中通常会标记有异常产生的原因.发生时间.具体错误行数等信息,这极大的节省了我们的排查时间,无形中提高了编码效率.所以 ...