系列目录:

【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. [转帖]Oracle入门精读28-字符集 AL32UTF8与UTF8

    字符(Character) 字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符编码(Character Encoding) 是一套法则,使用该法则能够对自然语言的字符的一个 ...

  2. Ubuntu18.04 设置ip地址

    1. 自己用vCenter安装了一个ubuntu18.04, 结果因为是 vCenter6.7 只有web界面, 发现GUI操作时鼠标位置不对,没办法只能通过cli的方式设置ip地址. 2. 先简单查 ...

  3. redis 6源码解析之 sds

    redis使用sds(simple dynamic string)实现了字符串的存储.sds实际上就是TLV格式的数据结构.其数据结构主要分为如下5种,主要分为首部和数据部分,首部给出了type和le ...

  4. 2024了,我不想再用AOP收集业务操作日志了 | 京东云技术团队

    0.背景 在近期的项目中,系统涉及到针对系统的业务操作日志统计功能,由于本系统位于业务链路的中心环节,负责接收上游系统的数据,并将基于用户操作产生的数据传递至下游系统,鉴于业务链路的复杂性和操作场景的 ...

  5. MySQL查询排序和分页

    连接数据库 mysql -hlocalhost -uroot -proot 排序查询语法: select 字段列表 from 表名 order by 字段1 排序方式1, 字段3 排序方式2,字段3 ...

  6. es7如何使用await发送请求

    handleLogin() { this.$http.post("login", this.formLabelAlign).then(res => { const { dat ...

  7. 【记录一个问题】VictoriaMetrics的vmstorage因为慢查询导致大量写入失败

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 见上图. 一直以为vmstorage中的查询协程会让位于写 ...

  8. Java 自增自减运算符和移位运算符介绍

    摘自 JavaGuide (「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.准备 Java 面试,首选 JavaGuide!) 自增自减运算符 在写代码的过程中,常见的 ...

  9. 【二】tensorflow调试报错、TF深度学习强化学习教学

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  10. CF526F Pudding Monsters 题解

    题目链接:CF 或者 洛谷 析合树真是连续段问题的降智神器 先看下题目的一些特殊性,每行每列恰好有一个棋子.考虑特殊性,\(n \times n\) 的棋盘,那么就该判断是否有 \(n\) 个棋子,容 ...