小白学 Python 爬虫(4):前置准备(三)Docker基础入门

人生苦短,我用 Python
前文传送门:
小白学 Python 爬虫(2):前置准备(一)基本类库的安装
小白学 Python 爬虫(3):前置准备(二)Linux基础入门
Docker 基础
首先说一件事情,就在本文写作前一天,Mirantis 这家公司宣布收购了 Docker 的企业业务和团队。并且在官网上也挂出了相关的文字。

没别的意思,相关的新闻通告一下。
Docker 官网地址:https://www.docker.com/
什么是 Docker ?
emmmmm,说实话,Docker 是什么并不好说,下面通过四点大致解释下 Docker 到底是个什么东西。
- Docker 是全球领先的软件容器平台。
- Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
- 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC。
- 用户可以方便地创建和使用容器,把自己的应用放入容器。

Docker 容器的特点:
- 轻量化:在一台机器上运行的多个Docker容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。
- 标准化:Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
- 安全:Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。
为什么要用Docker:
- Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题;——一致的运行环境
- 可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。——更快速的启动时间
- 避免公用的服务器,资源会容易受到其他用户的影响。——隔离性
- 善于处理集中爆发的服务器使用压力;——弹性伸缩,快速扩展
- 可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。——迁移方便
- 使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。——持续交付和部署
说起容器,与虚拟机的比较是一个永恒的话题,因为它做的事情和虚拟机做的事情非常的接近。
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

Docker 安装
Win10 下的安装
首先介绍一下 win 环境下 Docker 的安装,打开官网,下载最新版的 Docker Desktop 。
Docker 官方下载地址: https://www.docker.com/products/docker-desktop
下载前可能需要先注册下 Docker Hub ,注册完成后会直接跳转下载页面。

下载完成后默认配置 next 就好了。
验证:
在 CMD 命令行中执行:
docker info
请确保 Docker 正常启动状态,否则会报错的。
小编本地电脑执行后显示如下:
Client:
Debug Mode: false
Server:
Containers: 26
Running: 0
Paused: 0
Stopped: 26
Images: 28
Server Version: 19.03.1
...
内容有些多,我就不全贴出来了,主要会显示一些当前 Docker 相关的信息。
CentOS 下的安装
懒人神器,使用 CentOS 下的包管理工具 yum 进行安装,直接输入:
yum install docker
然后静静等待进度条走完,验证命令和上面一致,同样需确保 Docker 服务正常启动。
CentOS 中 Docker 基本操作命令:
# docker 启动
systemctl start docker
# 重启 docker服务
systemctl restart docker
# 关闭 docker 服务
systemctl stop docker
验证结果:

Docker 基础
首先了解两个概念:
镜像:Docker 镜像是用于创建 Docker 容器的模板。
容器:容器是独立运行的一个或一组应用。
讲人话就是镜像可以是我们自己的程序,也可以是第三方厂商提供的组件,比如数据库,缓存服务等等,而这个镜像想要运行的话,就要放在容器里面运行,它自己是不能单独运行的,就好比炒菜,光有菜不行,还要有锅,菜是在锅里炒出来的。

因为 Docker 默认的镜像源是在遥远的太平洋彼岸,访问速度会有些慢,建议各位同学配置一个国内的镜像源。
国内的镜像源有很多的,百度一下可以找到很多,小编这里使用的阿里云提供的容器镜像加速服务,大家可以登录自己的淘宝账号,在阿里云上找到容器镜像服务:

具体的配置方案阿里云已经提供出来了,小编这里不再赘述,大家自己登录阿里云查看吧。
上面这些都配置完成后,我们来讲几个最基础的 Docker 命令:
获取镜像
语法:docker pull NAME[:TAG]
其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像的标签(用来表示版本信息)
查看镜像
语法:docker images

可以看到,小编的机器上目前有一个 mysql5.7 镜像。
搜索镜像
语法:docker search [image-name]
从docker仓库搜索docker镜像
删除镜像
语法:docker rmi NAME
用来删除指定镜像,其中后面的参数可以是tag,如果是tag时,实际上是删除该tag,只要该镜像还有其他tag,就不会删除该镜像。当后面的参数为镜像ID时,则会彻底删除整个镜像,连通所有标签一同删除
实战 hello-world
首先输入 docker pull hello-world 来拉取 hello-world 镜像:

拉取成功后,我们使用 docker images 来查看下这个 hello-world 镜像 :

好了,我们已经看到这个 hello-world 镜像了,现在来尝试一下启动,使用命令 docker run hello-world :

若是出现了上图的内容则说明hello-world运行成功,如果没出现的话,emmmmmmmmmm,你们可能就要想想自己之前的操作了。
本篇文章到这里就结束了,希望各位同学能自己动手实践一下,毕竟实践出真知嘛。
参考
http://dockone.io/article/6051
小白学 Python 爬虫(4):前置准备(三)Docker基础入门的更多相关文章
- 小白学 Python 爬虫(13):urllib 基础使用(三)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(8):网页基础
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(11):urllib 基础使用(一)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(12):urllib 基础使用(二)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(14):urllib 基础使用(四)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(15):urllib 基础使用(五)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(17):Requests 基础使用
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(30):代理基础
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(7):HTTP 基础
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 小白学 Python 爬虫(35):爬虫框架 Scrapy 入门基础(三) Selector 选择器
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
随机推荐
- C#的集合类型及使用技巧
在日常开发过程中,我们不能避免的要对批量数据处理,这时候就要用到集合.集合总体上分为线性集合和非线性集合.线性集合是指元素具有唯一的前驱和后驱的数据结构类型:非线性集合是指有多个前驱和后驱的数据结构类 ...
- ESP8266开发之旅 网络篇⑮ DNSServer——真正的域名服务
1. 前言 Arduino for esp8266中有两个DNS服务相关的库: ESP8266mDNS库 这个库是mDNS库,使用这个库的时候ESP8266可以在AP模式或是以STA模式接入局 ...
- 整洁的 Table View 代码
Table view 是 iOS 应用程序中非常通用的组件.许多代码和 table view 都有直接或间接的关系,随便举几个例子,比如提供数据.更新 table view,控制它的行为以及响应选择事 ...
- 在Mac OSX上运行Windows应用程序
在Mac OSX中,借助wine,不需要安装虚拟机也可以运行Window应用程序. wine是一个在Linux和UNIX之上的,WIndows3.x和Windows APIs的实现.是运用API转换技 ...
- 配置IIS服务器提供APP文件下载
[IIS7.IIS7.5] 1)打开IIS服务管理器,左边点到计算机(也可设置特定网站) 2)右边功能项中找到MIME类型,双击打开3)右键“添加”4)扩展名中填写".apk",M ...
- 一个漂亮的js表单验证页面+验证码
一个漂亮的js表单验证页面 见图知其意, 主要特性 带密码安全系数的判断 其他的就没有啥啦 嘿嘿嘿 当然,其代码也在Github上 我也准备了一套可以直接Ctrl + v; Ctrl + c 运行的代 ...
- 作为一名程序员,你真正了解CDN技术吗?
本文导读: 物流仓库配送如何加速 静态资源文件部署方式 静态资源加速之CDN技术 解析过程中的名词解释 最后的总结 1.物流仓库配送如何加速 我们还是从生活中购物的例子来展开. 将时光倒回到几年前,在 ...
- maven项目部署到tomcat方法
今天记录下,maven项目部署到服务器的过程 1.首先在ide中里将自己的maven项目打包 mvn clean install 2. 看是否需要修改war包的名字,如果要修改,就用命令 mv xxx ...
- 【ARC064-F】【XSY2575】Rotated Palindromes(DP)(字符串)
Description 然而,由于小C沉迷于制作游戏,他完全忘记了自己作为国家集训队的一员,还有156道作业题等他完成.还有一天作业就要截止了,而他一题还没有做.于是他赶紧挑了一道看起来最简单的题: ...
- [考试反思]NOIP模拟测试19:洗礼
[]260 []230[]210 []200[8]170[9]160 这套题一般,数据很弱,T1T2暴力都能A,而且都是一些思维题,想不到就爆0. 原因不明,很多一直很强的人在这一次滑铁卢了,于是我个 ...