CentOS 7 Docker中运行.net core程序

运行环境:

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 8080


ENTRYPOINT ["dotnet", "myNetCoreDocker.dll"]

#设置时区
ENV TZ=Asia/Shanghai
RUN 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的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值