将Asp.Net Core3.1项目,使用Docker 部署到Centos 8
一、准备工具
Win 10
Centos 8
Visual Studio 2019
Docker Desktop 下载地址:https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe
二、Cenos 8安装docker
1、安装
yum install docker 安装docker
systemctl start docker.service 启动docker服务
systemctl enable docker.service 设置docker服务开机自启动
2、检查
docker -v

三、创建.net core 3.1项目并发布
1、创建项目


注意:勾选启用Docker支持,选择Linux。

注意:将Dockerfile文件属性改为:始终复制。

2、生成项目,现在本地使用docker运行,保证项目正常运行。

第一次运行的时候,会提示你运行Docker Desktop,无脑点是。继续运行会自动下载运行项目时所需要的镜像,静等complete即可。
3、本地运行成功
4、本地发布

发布后的文件结构

5、修改Dockerfile文件地址
由于我们是发布到本地,vs帮我们自动生成的Dockerfile文件里,包含了生成—>发布—>运行的所有流程,在这里,我们只需要最后一步运行的数据就行了。

dockerfile文件指令说明:
- FROM -指定所创建镜像的基础镜像
- WORKDIR-配置工作目录
- EXPOSE-声明镜像内服务监听的端口 (可以不写,因为我们具体映射的端口可以在运行的时候指定)
- COPY-复制内容到镜像 (. .代表当前目录)
- ENTRYPOINT-启动镜像的默认人口命令
6、打包到Centos 8服务器,我这里使用的是:SecureCRT

7、构建docker镜像
进入到服务器的相关文件夹路径,输入:
docker build -t mytest-mvc .

注意:结尾的 . 不能漏掉
参数解释:
- -t 指定镜像名称 (只能小写)
- . 表示build上下文为当前目录,默认情况docker会使用上下文的根目录找到Dockerfile文件
查看构建的镜像,输入:
docker image ls

8、创建并运行容器
docker run --name myfirstWeb -d -p 5001:2345 firstdocker
参数解释:
- --name 表示容器名称(区分大小写),也可以不指定,默认会生成
- -d 表示在后台以守护形式运行容器
- -p 表示外部端口与内部容器端口映射。关于-p的还有其他用法(https://www.cnblogs.com/williamjie/p/9915019.html)
- 结尾 表示上一步创建的镜像名称
查看容器运行情况,输入:
docker ps -a

最后,我们在本地请求:

如果发现请求不了,多半是下面两种情况:
1、对外映射的端口没开启。
//查询端口号XXX 是否开启
firewall-cmd --query-port=XXX/tcp
//开启端口
firewall-cmd --zone=public --add-port=XXX/tcp --permanent
//重启防火墙
firewall-cmd --reload
2、创建运行容器时监听的端口弄错了:
//查看容器运行日志
docker logs 容器ID

容器相关常用命令:
//查看容器运行日志
docker logs 容器名称/容器ID
//停止运行容器
docker stop 容器名称/容器ID
//删除容器
docker rm 容器名称/容器ID
//重启容器服务
systemctl restart docker
将Asp.Net Core3.1项目,使用Docker 部署到Centos 8的更多相关文章
- 什么样的项目适合docker部署,docker应用场景
docker官网上说明了docker的典型场景: 使应用的打包与部署自动化 创建轻量.私密的PAAS环境 实现自动化测试和持续的集成/部署 根据这些特性,我们可以想象一下,如果你的项目有如下痛点或者需 ...
- Centos下使用Docker部署asp.net core项目
本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...
- docker部署angular和asp.net core组成的前后端分离项目
最近使用docker对项目进行了改进,把步骤记录一下,顺便说明一下项目的结构. 项目是前后端分离的项目,后端使用asp.net core 2.2,采用ddd+cqrs架构的分层思想,前端使用的是ang ...
- ASP.NET Core3.1使用IdentityServer4中间件系列随笔(二):创建API项目,配置IdentityServer保护API资源
配套源码:https://gitee.com/jardeng/IdentitySolution 接上一篇<ASP.NET Core3.1使用IdentityServer4中间件系列随笔(一):搭 ...
- 《Asp.Net Core3 + Vue3入坑教程》-Net Core项目搭建与Swagger配置步骤
简介 <Asp.Net Core3 + Vue3入坑教程> 此教程仅适合新手入门或者前后端分离尝试者.可以根据图文一步一步进操作编码也可以选择直接查看源码.每一篇文章都有对应的源码 教程后 ...
- 《Asp.Net Core3 + Vue3入坑教程》 - Vue 1.使用vue-cli创建vue项目
简介 <Asp.Net Core3 + Vue3入坑教程> 此教程适合新手入门或者前后端分离尝试者.可以根据图文一步一步进操作编码也可以选择直接查看源码.每一篇文章都有对应的源码 目录 & ...
- 从零实操基于WSL2 Docker部署Asp.Net Core项目
前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...
- ASP.NET Core Docker部署
前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序. ...
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
随机推荐
- 使用Python来写mock代码(桩代码)-其实很简单
1.Mock基本用法 使用Mock能创建你能访问(模拟)的属性和方法 指定类或者函数的返回值和断言方式 创建handle_mock_01.py文件 # 1. 导入mock模块 from unittes ...
- 死磕Spring源码之AliasRegistry
死磕Spring源码之AliasRegistry 父子关系 graph TD; AliasRegistry-->BeanDefinitionRegistry; 代码实现 作为bean定义的最顶层 ...
- Unity 基于excel2json批处理读取Excel表并反序列化
excel2json是一款将Excel表格文件快速生成json和C#数据类的高效插件,详情了解如下: https://neil3d.github.io/coding/excel2json.html 该 ...
- Python os.lchown() 方法
概述 os.lchown() 方法用于更改文件所有者,类似 chown,但是不追踪链接.高佣联盟 www.cgewang.com 只支持在 Unix 下使用. 语法 lchown()方法语法格式如下: ...
- 转载——完整的ASCII码表
完整的ASCII码表,转载自下面的博主: http://www.cnblogs.com/xmxu/archive/2012/07/10/2584032.html
- 找回 Virtuoso 中的缩放和角度
https://www.cnblogs.com/yeungchie/ 打开要缩放的版图 CIW 中运行:dbCreateXformPCell(geGetEditCellView() geGetEdit ...
- 程序人生丨听说程序员是相当就能当的?BAT大牛当场就不乐意了!
有一种对软件开发者的偏见是:他们都是无趣的极客,是学校里的数学天才,每天都要在计算机屏幕前花费多个小时去写代码. 没错,开发者确实会在计算机屏幕前花费多个小时去写代码.但是,每天的工作中还有很多比写代 ...
- CF EC 86 E Placing Rooks 组合数学
LINK:Placing Rooks 丢人现场.jpg 没看到题目中的条件 放n个rook 我以为可以无限放 自闭了好半天. 其实只用放n个.那么就容易很多了. 可以发现 不管怎么放 所有列/所有行 ...
- windows:shellcode 原理
shellcode,一段短小精干的代码,放在任何地方都能执行,不依赖当前所处环境,那么就有这么几点要求: 不能有全局变量:函数里的局部变量在栈空间,地址是执行的时候动态分配的:但全局变量在编译时,会由 ...
- Linux的VMWare14中配置Centos7桥接网络环境(网络一)
1.查看当前初始环境如下:在windows端先查看本机ip ifconfig