Linux下使用docker部署netcore(一)

Linux下使用docker部署前后分离netcore webapi项目、前端vue页面、Mysql、Redis、SQLite

说明

这篇文章是为了记录公司的项目部署过程,方便给其他运维人员查阅,我对linux的详细操作谈不上非常精通,如果只是想了解实战项目的部署流程可以查看这篇文章。本文介绍了linux下使用docker的基本操作、使用docker部署netcore webapi项目、vue项目、Mysql、Redis、SQLite。我们先是一步一步部署,之后会采用docker-compose一步生成多种环境。 本人能力有限,底层的东西讲不清楚,但是会把遇到的问题的解决办法分享出来供大家查阅。废话不多说,直接整。

安装Docker

此处在Centos7进行安装,使用其他版本的系统可能在语句上要有所更改,自行百度吧。
1.首先查看自己的服务器上装没装docker,避免安装重复。

sudo yum update  #更新一下yum包
sudo yum install -y yum-utils  #安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
yum list installed | grep docker

如果已经安装了就不需要再次安装。

2.安装docker

yum -y install docker-ce

出现这种结果就代表安装完成
提示我们已经安装完成。
如果说No package docker-ce available,则运行:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

这一步设置稳定的仓库,添加yum源。之后再进行安装就可以了。

安装不上的话试试这种方法

启动docker

sudo systemctl start docker

设置docker自启动

sudo systemctl enable docker

查看docker是否运行起来

systemctl status docker

在这里插入图片描述

docker已经部署好了,接下来我们正式开始一样一样部署我们的项目。

Docker部署netcore项目

我们都知道netcore项目是需要依赖于程序运行时和SDK才可以运行的,也就是说部署netcore项目第一步应该是安装运行环境。

详细操作只需要三步,参考:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
在这里插入图片描述
2. 在我们自己的项目里右键项目,新增–>启动docker支持,之后我们会看到在项目里新增了一个Dockerfile文件
在这里插入图片描述
我们暂时先不需要修改这个文件,但是需要右键Dockerfile文件,属性–>如果较新则复制。接下来我们在文件管理夹中把我们的项目压缩、拷贝到我们linux服务器上,我们在服务器上编译发布。
在linux下创建一个文件夹

mkdir datavisual
   ls

在这里插入图片描述
文件夹创建成功,我们使用rz命令上传我们的文件。*(rz命令就是跳出我们熟悉的上传窗口)

   rz

在这里插入图片描述
如果rz命令不起作用,安装一下lrzsz

   yum install lrzsz -y

我们把文件导入到我们文件夹中后需要解压一下,我选择解压到DataVisualization 的同名文件夹下

   unzip -d DataVisualization DataVisualization.zip 

解压之后我们进入我们的文件夹,使用ls命令查看目录结构

在这里插入图片描述
我们可以看到里面有一个Dockerfile文件,我们将Dockerfile文件移动到上一级目录(原因是Dockerfile里的路径是从上级结构看的)

mv Dockerfile ..

在这里插入图片描述
运行Dockerfile,并生成镜像

docker build -t mynetcore:1.0 .

这个过程可能需要稍微等待一会。。。
创建镜像一共会有17步操作,镜像生成成功之后会是这样的结果:
在这里插入图片描述

docker images  #查看生成的镜像

在这里插入图片描述
运行下面的语句生成容器

docker run --name datavisual -d -p 8055:80 mynetcore:1.0

查看容器生成是否成功:

docker ps -a

在这里插入图片描述
我们可以看到我们的容器生成成功了,可以直接根据ip端口访问我们的netcore应用程序了。
注意上面图片的STATUS是Up状态才代表容器生成成功,如果是Exited(***)代表生成失败,怎么处理后面说。

就这样,有问题留言,只要我看到并且我了解的一定回复!

下一篇介绍docker下部署mysql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章