1.基础准备

1. ubuntu 18.04

2. docker version 18.09

3. netcore 2.1

2.简介

自从netcore支持跨平台之后,以及现在很多公司都是采用容器化部署,今天在比较空闲的时候学习了一下。

3.使用

3.1 创建netcore 项目  ,选择api程序完成创建

3.2 添加dockerfile

项目右键=》添加=》docker支持,添加成功之后会生成一个dockerfile文件,打开该文件,系统自动生成了一堆代码,但是在发布的时候发现不可用,因此从网上找了下面这种方式进行发布,把dockerfile属性改为始终复制,发布文件的时候直接把dockerfile文件也一块发布,如下图配置的dockerfile文件:

FROM microsoft/dotnet:latest #所需依赖
WORKDIR /web #容器中系统工作空间
#拷贝当前文件夹下的文件到容器中系统的工作空间(注意:“.”后面有空格)
COPY . ./ EXPOSE 80 #对外提供的端口号
EXPOSE 443 #容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序
ENTRYPOINT ["dotnet", "testDocker.dll"]

3.3 发布

跟以往发布net程序一样选择文件系统进行发布:

3.4 安装asp.net core镜像

sudo docker pull microsoft/dotnet

因为我们在dockerfile中要求的from镜像是microsoft/aspnetcore:latest,所以下载的时候我们直接pullmicrosoft/dotnet,如果下载慢的话 可以配置国内镜像站,这里我用的阿里云的镜像

sudo vi /etc/apt/sources.list

镜像下载完成之后输入sudo docker images 检查一下是否下载成功,下图中箭头所指就是我们下载的镜像,到此需要准备工作已经完成。

sudo docker images

3.5 把文件上传到liunx指定文件夹当中

本人所用sudo rz 把文件上传到liunx当中(如果您的linux系统没有安装,在终端输入:

sudo apt-get install lrzsz 进行自动安装),图中所示,刚才所发布的文件,全部上传到了liunx系统上的web文件夹当中

sudo apt-get install lrzsz
sudo rz

3.6 build 镜像

在build的时候注意,命令最后一定要有个".", 并且镜像名称也不允许出现大写,如果想带上版本号的话 可以输入命令:

sudo docker build -t web:v0.1 .

,如果不输入默认显示tag的latest

build之后就可以查看镜像列表:sudo docker images,下图中web  就是我们刚才所生成的镜像文件:

sudo docker images

3.7 运行build的镜像

sudo docker run -d -t -p 5000:80 web  #运行镜像

sudo docker ps  #查看正在运行的容器

sudo docker ps -a #查看所有容器信息


3.8 测试可正常访问

4.小结

在整个发布流程中涉及一些需要提前准备的例如docker环境,linux系统等还请自行配置。

netcore程序部署到docker的更多相关文章

  1. docker多个容器连接 将 Rails 程序部署到 Docker 容器中

    在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中

  2. netcore程序部署 ubuntu 16.0.4 报错 The type initializer for 'System.Net.Http.CurlHandler'的解决方案

    最近业务扩展需要把netcore程序部署到ubuntu 16.0.4上,因为代码里面用到了HttpClient 请求. 部署ubuntu后一直报错 参考地址:https://github.com/do ...

  3. 六、.net core (.NET 6)程序部署到Docker上

    使用Docker部署应用程序 首先确保已经安装Docker 桌面软件,如下图: 然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Do ...

  4. 将netcore网站部署到docker容器中

    一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...

  5. netcore程序部署及守护

    一.程序发布 1.在本机编译无误的情况下,选择发布成文件系统.注意如果使用了swagger 需要将生成的xml文档说明复制到发版包里面.否则会报错.(可以在项目的csproj 中加入 <Prop ...

  6. netcore程序部署 docker 异常 --生成图片二维码缺少libdl

    最近因业务需求需要在程序中实现二维码图片生成,于是就用到QRCoder开发库.最终在windows环境下部署运行没问题,但切换到docker(centos7.0)后发现是有问题的. 错误信息提示:Th ...

  7. Windows下docker的安装,将ASP.NET Core程序部署在docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...

  8. .NetCore程序在Linux上面部署的实现

    我们知道.NetCore能够实现跨平台的根本就是内置Kestrel服务器实现请求处理和不同操作系统上反向代理的实现.在windows操作系统上IIS反向代理配置非常简单.但是Linux上就较为麻烦了. ...

  9. 【保姆级】Python项目(Flask网页)部署到Docker的完整过程

    大家好,我是辰哥~ 前提:相信看到这篇文章的读者应该已经学会了Docker的安装以及Docker的基本使用,如果还不会的可以参考我之前的文章进行详细学习! 1.安装版:2300+字!在不同系统上安装D ...

随机推荐

  1. 第七章 mysql 事务索引以及触发器,视图等等,很重要又难一点点的部分

    [索引] 帮助快速查询 MyISAM ,InnoDB支持btree索引 Memory 支持 btree和hash索引 存储引擎支持 每个表至少16个索引   总索引长度至少256字节   创建索引的优 ...

  2. 微信小程序-获取地理位置

    近期公司使用微信小程序开发一套应用,涉及到使用小程序的获取地理位置接口,但是在使用测试过程中发现获取的经纬度偏差较大, 之后进行了一番搜索,终于找到了, 原文地址:http://blog.csdn.n ...

  3. Linux Ubuntu 16.04 初次安装使用总结zzz

    装了两天的ubuntu系统终于算是勉强能用了,来来回回装了有三四次,期间出了各种各样的毛病.但是还是被我的Google大法给治好了.为了装这个系统,算是耗了两天的时间,啥事情都没干,干耗在这上面了.所 ...

  4. 【转】Javascript错误处理——try…catch

    无论我们编程多么精通,脚本错误怎是难免.可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因. 通常,当发送错误时脚本会立刻停止,打印至控制台. 但try...catch语法结构可以 ...

  5. SSM-Spring-15:Spring中名称自动代理生成器BeanNameAutoProxyCreator

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 名称自动代理生成器:BeanNameAutoProxyCreator 为了更好的测试,我放了俩个接口,俩个实现 ...

  6. Node.js 专题

    前提电脑中已经安装过NodeJS, npm.现在需要进行升级操作.1.查看当前的npm和NodeJs的版本: C:\Users\Administrator>node -v v4.4.3 C:\U ...

  7. 用react重构个人网站 3-22

    问题一:import React from 'react'这个写法是怎么回事? 答案:require是common.js的写法,import是ES6的写法,主要功能都是引入模块,写法上: var mo ...

  8. Extjs--12种布局方式

    按照Extjs的4.1的文档来看,extjs的布局方式大致有12种,下面一一介绍,有些代码就是文档中的. 1.Border 边界布局 border布局,最多可以将页面分割为"东南西北中&qu ...

  9. canvas绘制形状

    栅格 之前简单模板中有个宽/高150px的canvas元素.如下图所示,canvas元素默认被网格所覆盖.通常来说网格中的一个单元相当于canvas元素中的一像素.栅格的起点为左上角(坐标为(0,0) ...

  10. js定时器让动画隔秒运动

    现有一个需求,宝箱隔几秒动一次,抓住用户眼球,自己写了个 doem.