netcorelinux后台运作(Linux系统Docker 部署 ASP.NET Core应用的流程分析)
netcorelinux后台运作
Linux系统Docker 部署 ASP.NET Core应用的流程分析目录
- 一、系统环境
- 二、操作流程及途中遇到的问题
1、腾讯云轻量应用服务器CentOS7.6
二、操作流程及途中遇到的问题1、SSH方式远程Linux
ssh <username>@<IP address or domain name>
如果遇到下图问题:
出现这个问题的原因:known_hosts是记录远程主机的公钥的文件,之前重装个系统,而保存的公钥还是未重装系统的系统公钥,在ssh链接的时候首先会验证公钥,如果公钥不对,那么就会报错
解决方法:使用shh-keygen 命令ssh-keygen -R IP
,执行完毕出现下图:
然后重新使用ssh方式远程Linux:
2、更新系统
sudo yum update
3、安装Git
sudo yum -y install git
4、安装Nginx,启用和启动服务:
sudo yum install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
5、安装Dotnet SDK
每台计算机只需要执行一次此操作。
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-5.0
6、安装Docker环境
1)安装Docker源:
首先,我们可以先执行下卸载命令,如果你之前安装过,或者系统自带了,需要卸载干净:
sudo yum remove docker-ce
然后我们就可以安装指定的源了,有官方版本和阿里云版本,我这里尝试使用阿里云版本的吧,听说会快一些。
Step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Step 3: 更新并安装Docker-CE
sudo yum makecache fast (可选)
sudo yum -y install docker-ce
Step 4: 开启Docker服务
sudo service docker start
设置docker开机启动
systemctl enable docker
启动docker
systemctl start docker
查看版本
docker --version
Docker常用命令
查看所有镜像 docker images
删除一个imageid的镜像
docker rmi [imageid]
删除所有镜像
sudo docker rmi $(docker images -q)
查看所有容器运行状态
docker ps -a
删除一个containerid的容器(实例)
docker rm [containerid]
删除所有容器
docker rm $(sudo docker ps -a -q)
2)测试Hello World
检查docker是否可以正常运行(运行hello-world镜像,如果本机没有hello-world镜像,系统会自动拉取hello-world镜像)
docker run hello-world
这个时候,我们可以来检查一下:
当前服务器有哪些镜像:
docker images
那如何查看有哪些容器呢:
docker ps -a
这个就是刚刚我们看到有输出内容的容器:容器ID是eb180038a3ce,镜像是hello-world,状态是已退出。
7、发布自己的镜像
1)添加Docker支持:
自定义项目要暴露的接口
在Api层右键添加Docker支持,选择Linux
更改Dockerfile文件
FROM:意思是我们的项目源镜像是哪个;
WORKDIR:镜像的工作目录;
COPY:复制文件(将Dockerfile所在目录下文件复制到镜像中的工作目录中)
EXPOSE:容器要开放的端口(我们用项目的8081端口)
ENTRYPOINT:为容器启动后要执行的命令 (这里将执行dotnet Docker.Core.Api.dll命令)
2个脚本文件:Docker.Core.Publish.Linux.sh和Docker.Core.Publish.Docker.sh
Dockerfile:然后右键,始终属性、始终复制到输出(bin)目录
接下来把项目发布到GitHub或者Gitee:我这里是发布到github然后去码云强制同步项目,从国内clone项目速度更快
2)发布
我们在服务器用Git将代码PULL下来,然后执行发布命令,我用一个批处理文件,直接一键生成(主要是防止漏掉文件):
执行发布命令:
就可以看到生成好的发布文件夹PublishFiles。
接下来就是docker 编译镜像了。
3)创建镜像
进入到我们的发布文件夹PublishFiles文件夹下,我们测试一下这个文件是否正常:
dotnet Docker.Core.Api.dll
没问题后,开始build了,还是在当前文件夹下(记得那个点):
docker build -t lenceas/apkimg .
其中lenceas/apkimg是我们的镜像名。
因为我们的Dockerfile是五步,所以这里也正好是5个Step。
然后查看机器上的镜像:
这里多了两个镜像,一个是我们的镜像ID为48252cd5c2d0,大小209M的项目文件,一个是我们Dockerfile的源镜像。
4)推送镜像到Docker hub仓库
第一步:在Docker hub注册账号
第二步:创建仓库
第三步:服务器镜像推送
先登录账号(这里如果以前登录过,可以先退出再重新登录)
推送:
docker push lenceas/apkimg:latest
检查:
我们登录管理后台,查看结果
可以看到已经成功推送了,这样的话,我们就可以在任何的地方使用我的镜像啦。
现在我们有了镜像,那就可以创建容器了,因为有了容器才能运行。
8、生成并运行容器
1)生成容器
有了镜像,我们来生成一个容器:
docker run -it -p 8081:8081 lenceas/apkimg
会看到输出内容,如果没有报错的话,就恭喜啦,退出当前进程,查看下有哪些容器:
这时候可以看到多了一个容器ID为e45b93658007,镜像是lenceas/apkimg的容器,不过我们的项目容器是退出状态,需要开启下:
docker start e45b93658007
状态已经是运行中了,那怎么测试接口是否正常了呢,可以用curl命令:
curl http://localhost:8081/WeatherForecast
如果到了这里,恭喜你,Docker部署NetCore基本已经搞定了
剩下最后一步了,nginx代理,因为我们的Docker已经守护了这个进程,所以我们不需要其他的守护进程的工作。
9、Nginx代理服务
修改nginx.conf文件,两种方式:
1.vim 命令
编辑文件:vim xxx
插入开始编辑:i
保存并退出::wq!
2.FTP下载到本地修改
这里具体的配置就不写了,网上可以自己去搜.
接下来就是重启Nginx服务,首先可以检测语法错误:
nginx -t
nginx -s reload
以上就是Linux Docker 部署 ASP.NET Core应用的详细内容,更多关于Docker 部署 ASP.NET Core应用的资料请关注开心学习网其它相关文章!
- docker只有localhost可用(浅谈Docker如何自定义host文件)
- docker如何启动springboot(Centos8.3、docker部署springboot项目实战案例分析)
- docker查找redis配置文件(解决docker重启redis,mysql数据丢失的问题)
- docker 容器移植(Docker构建kubectl镜像的实现步骤)
- docker保存容器的配置文件(docker cp 拷贝文件 和 进入容器的操作)
- docker打包配置好的镜像(docker镜像的导入和导出的实现)
- docker给镜像加名称(Alpine Docker镜像字体的问题解决操作)
- 查看docker容器进程运行状态命令(docker容器内要启动两个进程时Dockerfile的实现代码)
- springboot怎么用docker(使用docker部署spring boot并接入skywalking的方法)
- docker入门搭建博客(快速掌握使用Docker搭建开发环境)
- docker前端项目(Docker部署Nuxt.js项目的实现)
- dockerpull镜像的过程(详解docker pull 下来的镜像都存到了哪里)
- 关于docker安全之Docker-TLS加密通讯问题(关于docker安全之Docker-TLS加密通讯问题)
- 用docker搭建在线开发平台(docker部署蜗牛影院系统详细流程分析)
- docker镜像简介(详解使用阿里云镜像仓库构建国外Docker镜像)
- docker阿里云服务器教程(Docker安装阿里云服务器和在虚拟机安装遇到的坑问题小结)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
热门推荐
- python豆瓣电影爬虫课程设计报告(详解python 模拟豆瓣登录豆瓣6.0)
- 怎么调input搜索框边框颜色(使用placeholder属性设置input文本框的提示信息)
- 阿里云轻量服务器使用教程(阿里云轻量型服务器重新安装不自带应用的操作系统)
- vue 动态绑定指令(vue动态绑定图标的完整步骤)
- 云主机和免备案空间(香港云主机免备案利弊分析)
- dedecms缩略图优化教程(织梦DedeCMS V5.7缩略图站内上传修正)
- js的replace的用法
- dedecms关闭站点(dedecms搬家后出现/include/templets/default/index.htm Not Found!解决方案)
- background-position的使用
- mysql死锁情况(MySQL kill不掉线程的原因)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9