Centos 7 Docker 部署AspNetCoreapi

AspNetCoreapi 使用 Docker + Centos 7部署

环境准备

1:安装前准备

准备一台Linux 服务器或者系统或者安装CentOS 7虚拟机,本文使用的是安装CentOS 7的本虚拟机,确保网络是通的,并可以连接外网,因为我们在部署的过程须有很多的东西需要下载。

部署中使用的工具:

Xshell:一个用于连接Linux服务器的操作终端

Xftp6:一个用于上传已发布的ASPNETCore 应用程序的文件系统的工具

2:安装Docker

启动Xshell 连接CentOS7 Linux系统,具体连接可以参考windows系统下如何使用Xshell连接Linux 服务器终端,

界面如下:

 

注意CentOS7 中切换用户可以使用su 密码 回车,切换到管理员用户,管理员用户是#开头,如果切换普通用户,su 用户,即可,普通用户是$开头

 

Docker的具体使用可以参考官方文档:https://docs.docker.com/

Docker-ce社区版本,Docker-ee企业版本本文选择使用的是社区版,设置软件源,软件源是设置的阿里云镜像(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)

安装CentOS7 Docker的安装

下面如果使用sudo 命令安装不行的话,就要先切换到root,然后再执行安装命令

如下:

su 回车

密码 输入密码 回车

# 即是root管理员

1、安装依赖

docker依赖于系统的一些必要的工具,安装docker需要的依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

2、设置docker的阿里云镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker的社区版本docker-ce

yum -y install docker-ce

4、启动docker

systemctl start docker

5、查看docker版本

docker version

 

6、测试hello-world

docker run hello-world

docker images    查看镜像

docker ps        列出在运行的容器信息

docker ps -a      列出所有在运行的容器信息

 

也可以参考官方安装过程https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1

Centos7 AspNetCore 的运行环境

1、Microsoft 包存储库

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

2、安装 SDK

.NET Core SDK 使你可以通过 .NET Core 开发应用。 如果安装 .NET Core SDK,则无需安装相应的运行时。 若要安装 .NET Core SDK,请运行以下命令:

sudo yum install dotnet-sdk-3.1

如果不是再CentOS7 上做.NET Core 开发应用的话,只是运行 .NET Core 应用的话,那么只需要安装 .NET Core 应用的运行环境即可,.NET Core 运行时允许运行使用不随附运行时的 .NET Core 所开发的应用。 以下命令安装 ASP.NET Core 运行时,这是与 .NET Core 最兼容的运行时。 在终端中,运行以下命令。

sudo yum install aspnetcore-runtime-3.1

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET Core 运行时:将上述命令中的 aspnetcore-runtime-2.1 替换为 dotnet-runtime-3.1

sudo yum install dotnet-runtime-3.1

3、sudo yum install dotnet-sdk-3.1

4、sudo dotnet --info      查看dotnet sdk 的版本,有信息,则说明安装成功

 

Visual Studio2019 发布AspNetCore项目文件publish

1、选择项目,右键 发布

 

 

2、将发布成功的publish文件,通过Xftp上传到Centos7中桌面上,上传成功以后,煮面上会多出一个publish文件夹,包含项目的所有文件。

3、使用Xshell 连接Centos7 ,连接成功,切换到桌面上的publish文件夹目录下

命令: cd publish

4、创建Dockerfile文件

命令:sudo touch Dockerfile

5、编辑Dockerfile,

命令:sudo vi Dockerfile 或者sudo vi Dockerfile

添加内容如下,具体内容根据自己的项目来写,本作者的项目是WebCoreApp

 

i,进入编辑,编辑完后后按Esc推出编辑,按冒号:和wq和感叹号!退出保存

其实上面的Dockerfile文件可以在windows下编辑好,直接使用Xftp上传到centos7 publish文件夹中也是可以的。

6、根据上传的publish生成映像

命令:sudo docker build -t webcoreapp .   注意最后面的 点不要去掉啊,表示当前目录

7、查看镜像

命令:sudo docker images   

8、根据映像创建容器并运行

命令:sudo docker run --name webcoreapp -d -p 5000:80 webcoreapp

9、查看运行的容器

命令:sudo docker ps

如果没有容器的话,使用命令:sudo docker ps -a   找到容器的id,然后输入命令

sudo docker logs 容器id  查看错误信息

在外网浏览器输入:http://192.168.1.133:5000/weatherforecast

 

 

 

补充相关内容

Dockerfile的文件内容

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime

WORKDIR /app

EXPOSE 80

EXPOSE 443

COPY . .

ENTRYPOINT ["dotnet","WebCoreApp.dll"]

centos7docker安装及docker安装MySQL5.7

一、docker安装

1、查看内核,版本必须高于3.10

$ uname -r

2、移除旧的版本

$ sudo yum remove docker*

3、安装一些必要的系统工具

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4、添加软件源信息(这里拉取阿里云的镜像)

$sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、更新 yum 缓存

$ sudo yum makecache fast

6、安装 Docker-ce

$ sudo yum -y install docker-ce

7、启动 Docker 后台服务

$ sudo systemctl start docker

8、测试运行 hello-world

$ docker run hello-world

二、docker安装MySQL5.7

1、查找MySQL的可用镜像

$ docker search mysql

2、拉取MySQL镜像5.7

$ docker pull mysql:5.7

3、查看拉取的镜像

$ docker images |grep mysql

4、创建目录mysql,用于存放后面的相关东西

$ mkdir mysql

$ cd mysql

5、创建MySQL容器

复制代码

$ docker run -p 3360:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

#参数说明

-p 3360:3306:将容器的 3306 端口映射到主机的 3360 端口(第一个物理机端口,第二个容器端口)

-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf

-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs

-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

-d: 后台运行容器,并返回容器ID

复制代码

6、查看运行的容器

$ docker ps | grep mysql

三、MySQL远程登录

1、开启docker交互模式终端

$ docker exec -i -t mymysql /bin/bash

2、登录MySQL

$ mysql -u root -p

3、输入密码进入MySQL后授权

#--数据库的所有权限授权给 user这个用户,允许user用户在任何一个 IP 进行远程登陆,并设置 root 用户的密码为 123456

> grant all PRIVILEGES on *.* to 'user'@'%'  identified by '123456';

> flush privileges;

>exit;

4、退出docker终端

$ exit

猜你喜欢

转载自www.cnblogs.com/1175429393wljblog/p/13397714.html
今日推荐