Docker部署NETCORE应用程序
Docker部署NETCORE应用程序
创建.netcore项目,本文以ASP.NET Core2.2 版本为例
设置Dockerfile属性始终复制
编辑Dockerfile内容
- FROM microsoft/dotnet:2.2-aspnetcore-runtime
- MAINTAINER lihongyuan
- LABEL description="this is a test website"
- LABEL version="1.0"
- WORKDIR /app
- COPY . .
- EXPOSE 8888
- ENTRYPOINT ["dotnet", "ProjNetCore2.dll"]
说明:
- FROM microsoft/dotnet:2.2-aspnetcore-runtime #基础镜像为dotnetcore
- MAINTAINER demo #作者
- LABEL description="this is a test website" #描述
- LABEL version="1.0" #描述
- WORKDIR /app #工作目录
- COPY . . #将当前目录下的文件,复制到WORKDIR目录
- EXPOSE 8888 #容器暴漏8888端口,与Program.cs中设置的端口一致
- ENTRYPOINT ["dotnet","demo.dll"] #运行容器的命令
修改Program.cs文件,默认端口的指向为 8888 与Dockerfile 文中一致。
- public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
- WebHost.CreateDefaultBuilder(args)
- .UseUrls("http://*:8888")
- .UseStartup<Startup>();
发布项目
使用WinSCP 把发布后的项目上传到 服务器上。
些处上传目录为 /tmp/web
- [root@localhost ~]# cd /tmp/web/
- [root@localhost web]#
- [root@localhost web]# ls
- publish
- [root@localhost web]#
根据当前目录下dockerfile配置文件,进行打包(demo 为自己定义的镜像名)
- docker build -t demo .
- [root@localhost ~]#
- [root@localhost ~]# cd /tmp/web/publish/
- [root@localhost publish]# ls
- appsettings.Development.json Dockerfile ProjNetCore2.dll ProjNetCore2.runtimeconfig.json ProjNetCore2.Views.pdb wwwroot
- appsettings.json ProjNetCore2.deps.json ProjNetCore2.pdb ProjNetCore2.Views.dll web.config
- [root@localhost publish]#
- [root@localhost publish]# docker build -t imagedemo .
- Sending build context to Docker daemon .212MB
- Step / : FROM microsoft/dotnet:2.2-aspnetcore-runtime
- ---> ccf4063f0898
- Step / : MAINTAINER lihongyuan
- ---> Running in 176e4b1eba2b
- Removing intermediate container 176e4b1eba2b
- ---> 5d384a0303f9
- Step / : LABEL description="this is a test website"
- ---> Running in 09664d85b4dd
- Removing intermediate container 09664d85b4dd
- ---> e9890e799c19
- Step / : LABEL version="1.0"
- ---> Running in 93724ba2ac89
- Removing intermediate container 93724ba2ac89
- ---> b91ff0f19154
- Step / : WORKDIR /app
- ---> Running in 338a59ca24b3
- Removing intermediate container 338a59ca24b3
- ---> 64098342a151
- Step / : COPY . .
- ---> 26ab61b0731b
- Step / : EXPOSE
- ---> Running in 4c0ee7ff2687
- Removing intermediate container 4c0ee7ff2687
- ---> 5760b9754387
- Step / : ENTRYPOINT ["dotnet", "ProjNetCore2.dll"]
- ---> Running in 979a9b8c68b3
- Removing intermediate container 979a9b8c68b3
- ---> 5ae0691c4556
- Successfully built 5ae0691c4556
- Successfully tagged imagedemo:latest
- [root@localhost publish]#
打镜像成功:
- [root@localhost publish]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- imagedemo latest 5ae0691c4556 About a minute ago 265MB
- nginx latest 540a289bab6c weeks ago 126MB
- microsoft/dotnet 2.2-aspnetcore-runtime ccf4063f0898 weeks ago 261MB
- nginx <none> ab56bba91343 weeks ago 126MB
- rancher/rancher-agent v2.2.8 d499bdb8fd09 months ago 285MB
- rancher/rancher latest 59caa36aff1e months ago 482MB
- rancher/rke-tools v0.1.42 6fb74f33a5e1 months ago 131MB
- rancher/hyperkube v1.14.6-rancher1 4c0a26e51da8 months ago .05GB
- sonatype/nexus3 latest 35ca857d5b19 months ago 599MB
- rancher/nginx-ingress-controller 0.21.-rancher3 2b37f252629b months ago 569MB
- rancher/kube-api-auth v0.1.3 2817cb463960 months ago 149MB
- rancher/coredns-coredns 1.3. eb516548c180 months ago .3MB
- rancher/calico-node v3.4.0 a89b45f36d5e months ago .9MB
- rancher/calico-cni v3.4.0 d531d047a4e2 months ago .4MB
- rancher/coreos-etcd v3.3.10-rancher1 643c21638c1c months ago .5MB
- rancher/cluster-proportional-autoscaler 1.3. 33813c948942 months ago .8MB
- rancher/nginx-ingress-controller-defaultbackend 1.5-rancher1 b5af743e5984 months ago .13MB
- rancher/metrics-server v0.3.1 61a0c90da56e months ago .8MB
- rancher/coreos-flannel v0.10.0 f0fad859c909 months ago .6MB
- rancher/pause 3.1 da86e6ba6ca1 months ago 742kB
- [root@localhost publish]#
运行Docker容器
- docker run --name mydemo -d -p : imagedemo
说明:
--name 后面跟容器名称
-p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)
-d命令,容器就会一直运行,即使关掉终端窗口
imagedemo为前面生成的项目镜像
以后台模式启动一个容器,将容器的 8888 端口映射到主机的 8888 端口
运行后,可查看到新的容器:
访问网站:http://192.168.122.199:8888/
完成!
Docker 进入容器命令:
- docker exec -it 775c7c9ee1e1 /bin/bash
退出容器:exit
参考:https://www.cnblogs.com/hyunbar/p/10277100.html
Docker部署NETCORE应用程序的更多相关文章
- 【转载】如何使用docker部署c/c++程序
原文地址:https://blog.csdn.net/len_yue_mo_fu/article/details/80189035 Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交 ...
- Docker部署Python应用程序
Docker部署Python应用程序 1. 单个py文件部署 生成Dockerfile 文件 插件用的豆瓣的镜像,,重置时间(容器的默认时间是UTC时间与宿主机的相差8小时). 文中需要三个插件(pe ...
- Docker部署netcore web实践
1. 新建一个netcore的项目 2. 我们到项目的生成输出目录下,创建一个Dockerfile文件 3. 编辑Dockerfile文件 备注:红线圈住的地方,就是你生成的netcore的程序名称 ...
- docker 部署net core程序 curl访问地址 提示 Connection reset by peer
最近研究netcore 部署到docker上.在参考https://www.cnblogs.com/subendong/p/8992285.html教程之后,部署成功.但是curl访问对应的主机端口地 ...
- docker部署netcore应用(二)
基于第一章已经安装好了docker,这次将把netcore应用部署到docker容器中 开发工具vs2017,准备个DotNet Core的Console应用程序,测试一下 发布DockerTest项 ...
- Centos 中使用通过docker 部署.netcore
此前,我一直觉得,目前网络上的各种各样的技术文章.技术文档已经足够多,任何一种技术,都可以或多或少的在网络上找到教程,或者在qq群里找到前辈解答.所以,我觉得自己在博客上写文章的意义甚少.甚至觉得自己 ...
- CentOS利用Nginx+Docker部署.netcore应用
安装docker 官方文档https://docs.docker.com/engine/installation/linux/docker-ce/centos/ [root@sn ~]# yum re ...
- docker 部署一个 aspnetmvc 程序
准备mvc的程序[asp.net mvc5 网站] 使用刚才创建的镜像,并把上诉文件目录挂载到iis指定磁盘docker run -d -p 83:80 --name docker-drgs -v ...
- docker 部署netcore 的关键语句
网站容器:docker run -it --name myTestWeb -p 8080:80 -v /mnt/hgfs/my_share/core/website/:/website microso ...
随机推荐
- 【LOJ2542】「PKUWC2018」随机游走
题意 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...
- CSS-text-intent
text-indent:[ <length> | <percentage> ] && ? && ? 默认值:0 适用于:块容器 继承性:有 动画 ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:包装类
public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i ...
- P1076 Wifi密码
P1076 Wifi密码 转跳点:
- Python入门必学知识,30万年薪Python工程师带你学
Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...
- DirectX9完全面向对象框架
#pragma once #define UNICODE //Direct3D lib #include<d3d9.h> #include<d3dx9.h> #pragma c ...
- 15.Pythonic与python杂记
switcher ={ :'sunday', :'monday', :'thuesday' } day = day_name=switcher.get(day,'Unknow') print(day_ ...
- 055、Java中使用for循环输出乘法口诀表
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 修正png
这是修正+取MD5的方法 function MD5FileTextPng(filename: AnsiString): AnsiString; var buf: ..MAX_PATH - ] of C ...
- Python 日志模块详解
前言 我们知道查看日志是开发人员日常获取信息.排查异常.发现问题的最好途径,日志记录中通常会标记有异常产生的原因.发生时间.具体错误行数等信息,这极大的节省了我们的排查时间,无形中提高了编码效率.所以 ...