Docker技术几年前就火了,伴随着今年来devops的流行,这项技术一直被技术社区追捧。提起Docker很容易被默认为是Linux平台下的技术,.NET的技术跟他似乎没有沾边,不过那是对非.NET Core的技术而言,新推的.NET Core技术既然可以支持夸平台,那么当然运行在Docker平台也是没有问题的,.NET Core的安装指南里面就有专门的针对Docker平台的。

Docker技术最酷的功能当然就是运行环境的一致性,遥想没有Docker或者不用Docker,在开发,测试和部署环境维护配置的繁琐,耗费人力,惹毛开发人员。有了Docker把自动化部署推向了新的水平,甚至开发人员在开发机器把程序跑通,然后发布一个Docker镜像,然后用户pull下这个镜像,拿到Docker运行就可以了,是不是很简单呢。看起来简单的,具体技术实现还是要了解,比如如何创建自己的镜像,.NET Core的技术如何跟Docker结合使用等。

那就从最基本的开始,安装Docker平台。

实际上还是比较简单的,官方有详细的说明,有安装指南的好处是不用敲命令行,复制粘贴命令行就够了。

记录下简要的步骤,以后忘了也好重新捡回。

1 安装最小化版CentOS7

至于为什么选用CentOS7,并不是因为Docker平台只能运行在Linux,而是企业一般都用这个作为服务器系统。

(当然Docker也是可以运行在Windows(至少Windows10以上),在Windows上运行需要依赖HyperV,windows上安装Docker比较简单,不详细说。)

CentOS7安装的是最小化功能版本。

2 配置静态IP以及DNS域名解析
安装好系统之后静态IP以及DNS域名解析,设置静态IP是让xshell能在下次重启之后继续连上服务器,设置DNS是为了解析Docker相关的一些域名,因为下载镜像
的时候是通过域名访问的。
设置静态IP命令

vim /etc/sysconfig/network-scripts/ifcfg-ens33

主要设置以下项目的值,IP地址根据具体的值设置

BOOTPROTO="static"
IPADDR="192.168.115.136"
NETMASK="255.255.255.0"
GATEWAY="192.168.115.2"

设置DNS

vim /etc/sysconfig/network

加入一行即可

DNS1=8.8.8.8

当然设置其他IP也可以,能用就行。

 
3 按照官方教程安装docker
参考官方指南
https://docs.docker.com/engine/installation/linux/docker-ce/centos/
这里使用的是设置Docker仓库的方式安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-edge  #可选
sudo yum-config-manager --enable docker-ce-test  #可选
sudo yum install docker-ce

4 启动Docker
sudo systemctl start docker #启动Docker
sudo systemctl enable docker.service #设置Docker服务开机启动

5 增加docker用户组和用户(可选)
安装完成docker之后会创建一个docker用户组,没有的话自己创建一个。
udo groupadd docker
然后添加当前用户到docker用户组
sudo usermod -aG docker $USER
 
6 运行hello-world镜像的容器
sudo docker run hello-world   #基于hello-world镜像创建一个容器
上述命令会把hello-world镜像下载到本地,然后基于这个镜像创建一个容器,并且运行这个容器。
上述命令的输出可以看到Hello from Docker!的输出,说明已经可以成功运行docker平台了
 
可以通过
docker images命令查看本地的镜像

REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 05a3bd381fc2 2 weeks ago 1.84kB

通过docker ps -a 查看目前在运行的容器

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0872b507bdc hello-world "/hello" 10 seconds ago Exited (0) 9 seconds ago adoring_colden

到此Docker的服务器环境就够了,那.NET Core那些呢,不是要运行Asp.NET Core吗?

现在用的Docker,当然这些都要通过Docker镜像的方式解决,后续会详细介绍。

基于ASP.Net Core学习Docker技术第一步:在CentOS7安装Docker平台的更多相关文章

  1. Docker(1):CentOS7 安装Docker

    1.查看系统内核,docker要求系统的内核版本高于3.10 #  uname -r 2.升级yum包,确保最新 #   yum update 3.安装所需要依赖包 #   yum install - ...

  2. Docker实战 | 第一篇:Centos8 安装 Docker

    1. 安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 2. 配置镜像源 yum config-manager --a ...

  3. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  4. (一)学习了解OrchardCore笔记——开篇:基于asp.net core的OrchardCore

    想深入了解OrchadCore源码许久了,但是读源码的时候遇到很多问题而网上的参考资料太少了(几乎都是OrchadCms不带OrchardCore的),现在解决得差不多了,做下笔记方便自己查看,有错误 ...

  5. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  6. 基于ASP.Net Core开发的一套通用后台框架

    基于ASP.Net Core开发一套通用后台框架 写在前面 这是本人在学习的过程中搭建学习的框架,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 知其然,知其所以然,并非重 ...

  7. 基于ASP.NET Core 3.0快速搭建Razor Pages Web应用

    前言 虽然说学习新的开发框架是一项巨大的投资,但是作为一个开发人员,不断学习新的技术并快速上手是我们应该掌握的技能,甚至是一个.NET Framework开发人员,学习.NET Core 新框架可以更 ...

  8. ASP.NET Core学习系列

    .NET Core ASP.NET Core ASP.NET Core学习之一 入门简介 ASP.NET Core学习之二 菜鸟踩坑 ASP.NET Core学习之三 NLog日志 ASP.NET C ...

  9. AServer - 基于Asp.net core Kestrel的超迷你http服务器

    AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...

随机推荐

  1. [node.js]express+mongoose+mongodb的开发笔记

    时间过得很快,6月和7月忙的不可开交,糟心的事儿也是不少,杭州大连来回飞,也是呵呵. 希望下个阶段能沉浸下来,接着学自己想学的.记一下上几周用了几天时间写的课设.因为课设的缘故,所以在短时间里了解下e ...

  2. WPF透明窗体不支持缩放解决方案

    方案一 WPF中的无边框透明窗体,由于没有边并且透明,窗体无法进行缩放操作,今天来讲解如何解决这个问题. 先说一下思路,我们先手为该窗体添加4个边,4个角用于缩放操作,然后再为他们写事件,完成拖放操作 ...

  3. UWP开发入门(二)——RelativePanel

    RelativePanel也是Win10 UWP新增的控件,和上篇提到的SplitView一样在UWP的UI布局起到非常重要的作用.说句实在话,这货其实就是为了UWP的Adaptive UI而特意增加 ...

  4. unix网络编程卷2:进程间通信

    管道没有名字,只能有亲缘关系使用. FIFO也叫有名管道,有名所以没有了这个限制. 管道提供一个单向数据流,创建函数返回两个文件描述符.一个用来读,一个用来写. 宏S_ISFIFO可用于确定一个描述符 ...

  5. “全栈2019”Java第九十六章:抽象局部内部类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. 使用html2canvas截图并用jspdf打印的问题

    之前的方案确实可以打印出a4的大小的pdf,但是也呈现了诸多问题,因为这种方法是截图然后再进行打印的,所以打印出来的效果是模糊的,思前想后决定放弃了这种方式. 最终还是决定使用浏览器自带的打印方法. ...

  7. 创建maven自定义archetype项目

    1.安装Nexus这里是用homebrew安装, brew nexus 安装成功后,默认的访问端口为8081, 我这里的访问地址是http://192.168.99.100:8081 默认用户:adm ...

  8. 【vue】——vue.js 获取当前 自定义属性值

    假设有一个标签h5, 我们给它添加了一个自定义属性值,(item.id是从动态添加的) 点击h5 标签,如何才能获取当前对应的自定义属性值呢? 想当然的我最开始这样写: <h5 class=&q ...

  9. python unittest框架理解与总结(二)

    unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是python的标准测试库,相比于其他测试 ...

  10. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...