系列目录:

【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )

【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

【Docker】 .Net Core 3.1 webapi 集成EF Code First (MySql) (三)

【Docker】使用Docker 发布 .Net Core 项目 (四)

.......持续不定期更新中

如果安装使用Docker 请看目录(一)、(二),此文章不再介绍。

首先要生成Dockerfile文件,然后根据这个文件build docker 的 image(镜像),然后根据image,创建container(容器)。

1.把要发布的项目添加 Docker 支持(或者在新建项目的时候就添加docker支持),然后在项目目录下找到 Dockerfile 配置文件。

右键dockerfile文件,复制到输出目录改为 始终复制 ,这样发布的项目才会包含这个文件。

2. 修改dockerfile文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#工作目录
WORKDIR /app
#将整个publish文件 放到该文件夹下 ..的意识是 ./app
COPY . .
EXPOSE 8001
#启动命令 如果项目内没有指定useUrl 可以使用 ENTRYPOINT ["dotnet", "Test.dll","urls=http://*:8001"] 指定
ENTRYPOINT ["dotnet", "Test.dll"]

发布项目,把Publish目录下的文件 拷贝到Linux 服务器中

3. 到目标目录下,使用构建docker image

docker build -t test .

test的意思是这个 image 的名字取名为test

使用 docker images查看镜像是否创建

docker images

4. 启动容器

生成容器,每运行一次,就会新建一个容器(这里的5000:5000 代表把容器内的5000端口映射到你主机的5000端口,容器端口在后)

--name 是指定容器的名字 不指定会默认

docker run --name test1 -it -p 5000:5000 test

执行完之后报错,提示如下

研究后得知,我在项目中配置了https的地址,然而https在docker中不启用。

解决办法:删除不使用https 或者修改 appsetting文件

"Kestrel": {
"Endpoints": {
"HttpsInlineCertFile": {
"Url": "https://*:8001",
"Certificate": {
"Path": "socialnetwork.pfx",
"Password": "xxx"
}
}
}
}

5.继续创建容器,先删除之前容器和镜像,再重新build镜像,run容器。

docker rmi test
docker rm test1
docker build -t test .
docker run --name test1 -it -p 5000:5000 test

运行成功

测试启动成功,现在把这个容器删除 继续创建容器,命令加上 -d,使容器后台运行

docker run --name test1 -it -d -p 5000:5000 test

网页正常访问,你看到端口是80,是因为使用了nginx转发

6.检查运行状态、日志

查看容器运行状态

docker ps -a

查看docker日志

docker logs --since 30m CONTAINER_ID

其他具体操作请看【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )

【Docker】使用 Docker 部署 .Net Core 项目 (四)的更多相关文章

  1. Docker Gitlab CI 部署 Spring Boot 项目

    目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...

  2. Linux 部署.Net Core 项目

    前面也有说到,我学习Linux 主要因为要学习一下部署.NET CORE项目到Linux 系统,这里就记录一下部署的详细步骤吧. 主要需要安装以下几个工具 1..NET CORE SDK 2.Jexu ...

  3. linux部署.net Core项目

    首篇笔记,多多关照.方便回忆和给新手指导,大神绕道 首先在Linux系统部署.net Core项目首先准备一个Linux系统的服务器,百度云,阿里云都行. 1.net core 部署在Linux系统上 ...

  4. 在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

    这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴. Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可 ...

  5. IIS部署.net core项目

    1.安装AspNetCoreModule模块 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,中间最 ...

  6. Linux服务器使用Docker部署.net Core项目

    发布ASP.NET Core项目 和普通的项目发布一样,将项目发布到目标文件夹中 构建Dockerfile文件 在目标文件根目录新建Dockerfile文件(没有后缀) FROM microsoft/ ...

  7. Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)

    前一节演示在docker中安装mssql,地址:Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7) 本节演示 .Net Core项目容 ...

  8. dotnet-warp && NSSM 部署 .net core 项目到 windows 服务

    如果你想将 .net core 项目以服务的形式部署到 windows 系统,希望本篇文章能够让你少走弯路 dotnet-warp 安装使用 dotnet-warp 是一个全局的.NET Core 工 ...

  9. Linux上用Docker部署Net Core项目

    前提:本地配置好Docker环境1.构建Net Core镜像 docker pull microsoft/dotnet 2.新建一个DockerFile文件并填充内容 #基于 `microsoft/d ...

  10. Jexus部署.Net Core项目

    Jexus Jexus 即 Jexus Web Server,简称JWS,是Linux平台上 的一款ASP.NET WEB服务器.它是 Linux.Unix.FreeBSD 等非Windows系统架设 ...

随机推荐

  1. [转帖]一个故事看懂CPU的TLB

    https://www.cnblogs.com/xuanyuan/p/15347054.html Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个 ...

  2. [转帖]UseG1GC垃圾回收技术解析

    https://www.cnblogs.com/yuanzipeng/p/13374690.html 介绍 G1 GC,全称Garbage-First Garbage Collector,通过-XX: ...

  3. 范德蒙德矩阵行列式 & 循环矩阵行列式的证明

    范德蒙德矩阵的行列式 \[\begin{vmatrix} 1 & 1 & 1 & \dots & 1 \\ x_1 & x_2 & x_3 & ...

  4. 【JS 逆向百例】反混淆入门,某鹏教育 JS 混淆还原

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  5. TienChin 渠道管理-查看渠道接口

    自定义 hasPermission 校验规则 自定义一个 Spring Security hasPermission 校验规则: 在 tienchin-framework 模块当中进行自定义,新建 C ...

  6. 【Spring】Bean装配类注解

    默认注入类型 多个同类型Bean 注入失败 依赖 使用目标(@Target) @AutoWired 通过type 默认首先安装属性名称进行注入 结合@Qualifier注解(value属性)设置注入的 ...

  7. 【6】opencv采用映射技术实现鱼眼镜头校正和鱼眼镜头还原全景图。

    相关文章: [1]windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置 [2]Visual Studio 2017同时配置OpenCV2.4 以及O ...

  8. 4.4 Windows驱动开发:内核监控进程与线程创建

    当你需要在Windows操作系统中监控进程的启动和退出时,可以使用PsSetCreateProcessNotifyRoutineEx函数来创建一个MyCreateProcessNotifyEx回调函数 ...

  9. 1.5 为x64dbg编写插件

    任何一个成熟的软件都会具有可扩展性,可扩展性是现代软件的一个重要特征,因为它使软件更易于维护和适应变化的需求,x64dbg也不例外其可通过开发插件的方式扩展其自身功能,x64dbg提供了多种插件接口, ...

  10. 字节码编程,Javassist篇四《通过字节码插桩监控方法采集运行时入参出参和异常信息》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 字节码编程插桩这种技术常与 Javaagent 技术结合用在系统的非入侵监控中,这样 ...