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

人生苦短,我用 Pythonmysql

前文传送门:sql

小白学 Python 爬虫(1):开篇docker

小白学 Python 爬虫(2):前置准备(一)基本类库的安装数据库

小白学 Python 爬虫(3):前置准备(二)Linux基础入门缓存

Docker 基础

首先说一件事情,就在本文写做前一天,Mirantis 这家公司宣布收购了 Docker 的企业业务和团队。而且在官网上也挂出了相关的文字。安全

没别的意思,相关的新闻通告一下。服务器

Docker 官网地址:https://www.docker.com/工具

什么是 Docker ?

emmmmm,说实话,Docker 是什么并很差说,下面经过四点大体解释下 Docker 究竟是个什么东西。测试

  1. Docker 是全球领先的软件容器平台。
  2. Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操做系统层面的虚拟化技术。
  3. 因为隔离的进程独立于宿主和其它的隔离的进程,所以也称其为容器。Docke最初实现是基于LXC。
  4. 用户能够方便地建立和使用容器,把本身的应用放入容器。

Docker 容器的特色:

  1. 轻量化:在一台机器上运行的多个Docker容器能够共享这台机器的操做系统内核;它们可以迅速启动,只需占用不多的计算和内存资源。镜像是经过文件系统层进行构造的,并共享一些公共文件。这样就能尽可能下降磁盘用量,并能更快地下载镜像。
  2. 标准化:Docker容器基于开放式标准,可以在全部主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
  3. 安全: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

若是个人文章对您有帮助,请扫码关注下做者的公众号:获取最新干货推送:)
相关文章
相关标签/搜索