博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 7 Docker中运行.net core程序
阅读量:4031 次
发布时间:2019-05-24

本文共 1886 字,大约阅读时间需要 6 分钟。

运行环境:

CentOS 7

Docker

.Net core版本:2.1

程序开发工具 vs2017

新建asp.net core项目

选择API,一定要勾选启用Docker支持

新建一个ApiController

 

命名为LoginController,然后新建一个测试方法checkLogin

这步完成后,一个简单的测试工程就建好了。接下就是要发布,用来获取生成docker镜像文件需要的文件。发布之前,先改一些配置

在Program.cs中的 CreateWebHostBuilder方法加.UseKestrel().UseUrls("http://*:8080")。设定默认端口。

修改Dockerfile文件,内容如下:

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.#For more information, please see https://aka.ms/containercompat#基于 `microsoft/dotnet:2.1-aspnetcore-runtime` 来构建我们的镜像FROM microsoft/dotnet:2.1-aspnetcore-runtime #拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中 COPY . /publish#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹WORKDIR /publish#设置Docker容器对外暴露8080端口EXPOSE 8080ENTRYPOINT ["dotnet", "myNetCoreDocker.dll"]#设置时区ENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

如果要访问Oracle这里要加

#设置时区

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

否则提示

 ORA-01882: timezone region not found

 

保存后更改dockerfile的属性

 重新生成后发布

发布成功后去查看一下目标目录

这种发布方式在项目引用其它组件时,可能会不完整,这里建议用管理员模式进入命令窗口,进入项目文件夹,

执行dotnet publish -c Release 

要确定目录有Dockerfile这个文件,生成docker镜像时必需。将publish目录放到docker所在的centos系统中,可以使用ftp传过去。

将整个目录传过去之后,进入publish这个目录,可以看到刚刚发布的文件。

开始生成镜像

执行 docker build -t mynetcoredocker .

生成一个名字叫 mynetcoredocker的镜像,注意build命令后面的 . 不可去掉,这个 . 代表的是当前构建镜像的上下文路径

生成过程中的提示

生成完毕

会看到Successfully built的字样

执行docker images查看镜像

[root@localhost publish]# docker images    

运行这个镜像:

docker run --name mynetcoredocker -d -p 8080:8080 mynetcoredocker

--name 容器的名称

mynetcoredocker 镜像名称

-d 后台进程

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

执行docker ps -a查看运行结果

验证一下asp.net core webapi是否工作。通过postman调用一下

可以返回结果,docker上部署asp.net core程序完毕。

这里需要注意一下项目中的文件引用路径,如css,js的引用路径大小写问题,Linux下区分大小写,Windows下正常工作的,发布后部署到docker中,就会出现加载不了css和js的问题。

转载地址:http://ngqbi.baihongyu.com/

你可能感兴趣的文章
POJ 2498 StuPId(我的水题之路——from back to front- -!)
查看>>
POJ 2535 Very Simple Problem(我的水题之路——看错题)
查看>>
POJ 2538 WERTYU(我的水题之路——键盘错位)
查看>>
POJ 2551 Ones(我的水题之路——重点,末尾有几个1)
查看>>
POJ 2562 Primary Arithmetic(我的水题之路——模拟加法进位)
查看>>
POJ 2575 Jolly Jumpers(我的水题之路——数组绝对差值为1到n-1)
查看>>
POJ 2578 Keep on Truckin'(我的水题之路——谁先大于168)
查看>>
POJ 2579 Blurred Vision(我的水题之路——四方格平均值)
查看>>
POJ 2591 Set Definition(我的水题之路——又一个丑数)
查看>>
POJ 2606 Rabbit hunt(我的水题之路——斜率最多)
查看>>
POJ 2608 Soundex(我的水题之路——字符值)
查看>>
POJ 2636 Electrical Outlets(我的水题之路——水,电器接头)
查看>>
POJ 2656 Unhappy Jinjin(我的水题之路——不开心的学习日)
查看>>
POJ 2664 Prerequisites?(我的水题之路——选课)
查看>>
POJ 2665 Trees(我的水题之路——移树,POJ100题啦!)
查看>>
POJ 2840 Big Clock(我的水题之路——水,钟)
查看>>
POJ 2864 Pascal Library(我的水题之路——都来了么)
查看>>
POJ 2871 A Simple Question of Chemistry(我的水题之路——数列两数之差 )
查看>>
POJ 2909 Goldbach's Conjecture(我的水题之路——任一数为素数对之和)
查看>>
POJ 2924 Gauß in Elementary School(我的水题之路——n到m的连和)
查看>>