AspNetCoreapi 使用 Docker + Centos 7部署

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

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

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

1:安装前准备

  首先确保我们有一台Linux 服务器或者系统或者虚拟机,我使用的是虚拟机系统做的Centos 7的版本。然后确保网络是通的,最好能联通外网,因为我们在部署的过程须有很多的东西需要下载:

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

:XFTP5    :上传发布的文件

2:安装Docker 步骤如下:

  使用:secureCRT链接上Linux 如下:

  

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

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

  步骤:如下

  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 目前机构正在搞活动优惠很多,说 “乐途” 介绍的应该会有优惠

有不足之处 希望大家指出相互学习,

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

原文地址:https://www.cnblogs.com/szlblog/p/9871400.html

时间: 2024-10-12 19:50:12

AspNetCoreapi 使用 Docker + Centos 7部署的相关文章

在Docker Centos上部署Jenkins(包含Jenkins汉化)

环境: 本机 - macOS 10.12.6 Docker - Docker Community Editoin_ Version 17.06.0-ce-mac19(安装步骤见另一篇) 使用的Docker镜像: centos (latest) 安装步骤: 1.新建并启动一个centos docker容器 tester_mac:~ $  docker run -itd --privileged --name=jenkins -p 4000:4000 centos /usr/sbin/init --

轻轻松松在centos上部署docker服务

首先,因为docker的运行需要linux本身某些组件和内核特性的支持,所以要确保centos的版本大于6,并且内核版本大于2.6.32-431.可以简单的升级centos6到最新版本. sudo yum upgrade 然后安装cgroup sudo yum install libcgroup service cgconfig start #启动croup服务 lssubsys -am 如果安装成功,最后一个命令lssubsys -am会显示所有子系统的挂载点 源码方式安装lxc sudo y

深入浅出Docker(四):Docker的集成测试部署之道

1. 背景 敏捷开发已经流行了很长时间,如今有越来越多的企业开始践行敏捷开发所提倡的以人为中心.迭代.循序渐进的开发理念.在这样的场景下引入Docker技术,首要目的就是使用Docker提供的虚拟化方式,给开发团队建立一套可以复用的开发环境,让开发环境可以通过Image的形式分享给项目的所有开发成员,以简化开发环境的搭建.但是,在没有Docker技术之前就已经有类如Vagrant的开发环境分发技术,软件开发者一样可以创建类似需求的环境配置流程.所以在开发环境方面,Docker技术的优势并不能很好

Docker CentOS release 7.2下的安装

Docker CentOS release 7.2下的安装 环境介绍: [[email protected] ~]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core)  [[email protected] ~]# uname -r 3.10.0-327.el7.x86_64 [[email protected] ~]# Docker的安装:如果网络条件良好的情况下,直接配置yum源,yum安装,也可以提前下载好rpm包进

Centos 7 部署ELK Stack+beats+kafka

Centos 7 部署ELK Stack+beats+kafka整体的架构如下图:介绍篇:日志的定义:日志是带时间戳的基于时间序列的机器运行数据,包括硬件(服务器,网络设备,存储设备,IOT设备),系统(Linux&windows&docker&*bsd),数据库(Mysql&Oracle&SQL server..),应用程序(nginx,tomcat,Apache...).日志是反映设备运行真是数据,也是系统运行情况,故障分析,性能分析,安全问题追踪等问题的重要依

Docker 入门 到部署Web 程序

最近阿里的面试官问我Docker是做什么用的,我记得之前360和美团,京东的都问过,但是一直没时间看,最近有时间了,系统的学习了一下Docker,在此做一下记录,方便各位看官学习交流 一.Docker概述: Docker: 本意是码头工人,言外之意是集装箱: Java号称“一次编译,到处运行”,因为java虚拟机解决平台的兼容性问题,所以有java虚拟机的地方就能跑java代码: Docker是:“一次封装,到处运行”,因为docker决绝了应用环境的问题,安装了docker的平台就能跑“doc

Docker Compose 一键部署Nginx代理Tomcat集群

Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [[email protected] ~]# tree compose_nginx_tomcat/ compose_nginx_tomcat/ ├── docker-compose.yml ├── mysql │   ├── conf │   │   └── my.cnf │   └── data ├── nginx │   ├── Dockerfile │   ├── nginx-1.12.1.tar.gz │  

docker微服务部署之:六、Rancher管理部署微服务

docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台. Rancher官网:https://rancher.com 二.Docker中下载Rancher镜像并运行 #Rancher镜像下载 $ sudo docker pul

Docker私有仓库部署和管理

Docker私有仓库部署和管理 本章结构: Harbor介绍 部署Harbor所依赖的Docker Compose服务 部署Harbor服务 Harbor日常操作管理 Harbor管理生命周期 Harbor介绍 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP目录服务/AD域服务 图像删除和垃圾收集 图形UI(可以访问Web界面) 审计 RESTful API Harbor架构组成 Proxy: 通过