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. Solr特性:Schemaless Mode(自动往Schema中添加field)

    WiKi:https://cwiki.apache.org/confluence/display/solr/Schemaless+Mode 介绍: Schemaless Mode is a set o ...

  2. HTML解析器软件

    HTML解析器软件 HTML文档解析器 HTMLParser HTML Parser 是一个对HTML进行分析的快速实时的解析器,最新的发行版本是1.6,另外2.0的开发版本已经两年没有进展了.示例代 ...

  3. vim命令以及gcc编译器的常用cmd

    Gcc常用命令:         -c    仅对源文件进行编译,不链接生成可执行文件.常用于查错和只生成目标文件.     -o    经过gcc处理过后的结果保存在-o后面的文件中,可以是多种文件 ...

  4. .net使用QQ邮箱发送邮件

    /// <summary> /// 发送邮件 /// </summary> /// <param name="mailTo">要发送的邮箱< ...

  5. Java50道经典习题-程序5 判断分数等级

    题目:利用三元运算符来完成此题:从键盘录入一个整型的分数,没有负分满分为100分,学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示.分析:三元运算符的格式为:逻 ...

  6. [Objective-C语言教程]结构体(17)

    Objective-C数组可定义包含多个相同类型的数据项的变量类型,但结构体是Objective-C编程中的另一个用户定义数据类型,它可组合不同类型的数据项. 结构体用于表示记录,假设要图书馆中跟踪书 ...

  7. P3698 [CQOI2017]小Q的棋盘

    题目链接 题意分析 首先 我们肯定会贪心的走从根节点到叶子结点最长的一条链 首先没有过剩的就好办了 但是有的话 我们就一边往下走 一边走分支 分支上每一个点平均走过两次 所以我们把剩下的除以\(2\) ...

  8. 「PKUWC2018」Slay the Spire

    题目链接 题意分析 这个题其实不是期望 就是一共有\(C_{2n}^m\)种情况 每一种情况选择\(k\)张牌 然后求最大攻击值的总和 我们考虑 当前抽出了选出了\(i\)张强化牌 \(m-i\)张攻 ...

  9. 初学struts2框架

    昨天初学strts2,折腾了一晚上才正好一个简单的应用程序,在这个过程中遇到了很多的问题. 1. struts2的更新太快,所以从图书馆借的书常常会跟不上变化,所以有时执行起来会很麻烦. 2. 如果你 ...

  10. 3.3 PXC Strict Mode

    摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...