AspNetCoreapi 使用 Docker + Centos 7部署

 

很久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了。而后好长一段时间没有写了。linux

今天记录一下AspNetCore 部署Docker+Centos 7 这里说明一下:Docker 须要用Centos7版本的操做系统web

这里模拟演示的是实战环境的部署,项目就是使用的实战中的项目docker

1:安装前准备

  首先确保咱们有一台Linux 服务器或者系统或者虚拟机,我使用的是虚拟机系统作的Centos 7的版本。而后确保网络是通的,最好能联通外网,由于咱们在部署的过程须有不少的东西须要下载:centos

部署中使用的工具:secureCRT:连接Linux终端的服务器,api

                            :XFTP5    :上传发布的文件安全

2:安装Docker 步骤以下:

  使用:secureCRT连接上Linux 以下:服务器

  

  Docker的官方文档:https://docs.docker.com/网络

  Docker 分为社区版CE和企业版EE,CE是免费提供给开发者和小团体使用,企业版的是收费的,我这里选择使用的是社区版的。app

  步骤:以下

  1.开始安装:首先执行命令安装所需的包:sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2框架

  2.设置稳定的存储库:sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

  3.安装:sudo yum install docker-ce

  4.启动:sudo systemctl start docker

  5.验证是否成功: sudo docker version

  6.安装结果:

  

  这里是官方安装过程:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1

  

3:AspNetCore 镜像的选择与拉取

  选择下载镜像前咱们首先须要肯定的是咱们项目将要或者已经使用的是什么版本的项目框架,咱们项目使用的是2.1;

  

  

  在下载镜像的时候咱们能够事先给下载好镜像,也可使用 Dockerfile 文件进行下载:

  若是咱们须要在Docker 容器中进行编译打包运行等操做的时候咱们就须要安装完整的SDK了, 若是咱们只是单纯的运行的话只须要安装运行时 aspnetcore-runtime就行:官方文档中也有明确的说明:

  

  拉取镜像有两种方式以下:

  1.使用命令拉取镜像: docker pull microsoft/dotnet:2.1-sdk

  

  查看结果:docker images

   

  2.使用Dockerfile 文件拉取

  新建新建文件去掉后缀名命名为:Dockerfile  编辑文件内容以下:请注意FROM 节点上也是我们将要使用的镜像:下图箭头指向部分

  

  切换到Dockerfile 文件所在的目录下 执行命令 建立一个镜像

  

  查看结果:

  

  这里有两个镜像 名为ESD镜像就是我们的项目运行镜像了,可是咱们没有准备任何将要运行的项目,因此此镜像是失败的,咱们执行这一步证实了Docker 能够直接拉取项目运行的镜像。

  执行命令对它进行删除:docker rmi  esd(可使用镜像的名称或者镜像的 ID进行删除)

  

4:项目的部署:

  首先在进行部署前我建议你们先看认真看一边官方有关Docker的网络配置

  https://docs.docker.com/network/

  一个新的项目若是不对项目的IP或端口进行任何改变的话 部署成功后默认监听的是80 端口,以下图所示:

  

  若是你不进行改变的话也就是说这个项目部署是就使用80端口了,在建立容器的时候从新指定的端口就访问不通了。

  因此我首先改动了项目中的项目运行时监听的端口在项目文件Program添加代码以下:

  .UseKestrel().UseUrls("http://*:8091") // 在全部网络接口上监听端口 8091

  

  改好后进行发布:发布完成后上传到服务器Dockerfire 文件所在的目录中

  对Dockerfire 进行修改

  

   # 表示当前建立的镜像所依赖的基础镜像

  FROM microsoft/dotnet:2.1-sdk

  # 表示当前容器的工做目录 将要运行的web程序放在容器中的那个目录下,没有会自动建立

  WORKDIR /app

  # 设置对外暴露的端口,不设置默认为 80

  EXPOSE  8091

  # 表示会把当前目录下的Web程序文件 拷贝到 容器的 /app 文件下,

  COPY  . .

  # 将要执行的命令

  CMD ["dotnet", "lenovo.core.ESDDB.WebApi.dll"]

  使用命令运行该Dockerfire 文件建立容器

  命令: docker build -t  esdapi .  

  这个命令须要注意的是 镜像名称 不要使用大写 镜像名称后的 “点”不要忽略了

  

  建立容器:

  命令:docker run --name esdapi -d -p 8091:8091 esdapi

  结果如图所示:

  

  查看结果:docker ps

  

  这里注意的是在查看结果的时候若是没有容器在运行则使用 docker ps -a 命令查看容器找到容器的ID 使用 docker logs +容器ID 查看容器日志信息找缘由。

  外部访问部署结果:

  

  你们对直接 考软考高级,以及PMP 证书感兴趣的话 能够加群 815186020 目前机构正在搞活动优惠不少,说 “乐途” 介绍的应该会有优惠

有不足之处 但愿你们指出相互学习,

            本文原创:转载请注明出处 谢谢!

相关文章
相关标签/搜索