系列目录:

【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. 【转帖】3.JVM内存结构概述

    目录 1.JVM内存结构 1.JVM内存结构 在JVM系列的第一篇文章中已经给出了JVM内存结构的简图,下面是JVM内存结构更加详细的图. 同样,JVM的内存结构可以分为上中下3层. 上层主要是类加载 ...

  2. [转帖]Xargs用法详解

    https://www.cnblogs.com/cheyunhua/p/8796433.html 1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要, ...

  3. [转帖]JVM NativeMemoryTracking ;jcmd process_id VM.native_memory;Native memory tracking is not enabled

    目录 一.Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能.我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据. 1.N ...

  4. 2022 倒带 - NutUI

    作者:京东零售 于明明 前言 时光飞逝,流年似水,让我们倒带 2022,回首这跌宕起伏一年走过的 "升级之路". NutUI 表现如何? 成绩单等着您打分! 2022 是 NutU ...

  5. 我对computed的理解-以及computed的传参

    computed 传参 <template> <div> <p>computed传参的写法:{{ who1Params('--我是传参的内容') }}</p& ...

  6. 【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:加速乐加密 ...

  7. .NET 使用Camunda快速入门

    简介参考:https://www.cnblogs.com/lvdeyinBlog/p/16095603.html 一.工作流介绍 1. 什么是工作流 工作流(Workflow),是对工作流程及其各操作 ...

  8. Sqlite管理工具

    ! https://zhuanlan.zhihu.com/p/375188242 SQLiteStudio 开源免费的一款sqlite数据库管理软件,支持windows,linux,macos 官网: ...

  9. ShardingSphere

    目录 1.ShardingSphere分表与分库分表 2.ShardingSphere分库分表查询 3.自定义分片算法实现range查询 4.SPI扩展机制概述 5.stand通过SPI实现range ...

  10. springboot多模块打包报错问题根因分析:Unable to find main class

    问题背景: 项目结构为springboot多模块,其中有四个模块bean.utils.user.ems,其中user和ems模块为主程序,包含启动类,其他两个模块为其服务,提供依赖 问题分析: 查看u ...