《第一本 Docker 书》读书笔记 - 1: 简介与安装

1.简介

什么是 Docker ?书中的原话是:linux

Docker 是一个可以把开发的应用程序自动部署到容器的开源引擎。docker

若是你和我同样是第一次接触 Docker 和容器化技术,那么你多是不理解这句话到底在说什么,那么咱们不妨先来看看 Docker 可以作什么,而后再来看看什么是 Docker。shell

1.1 能用 Docker 可以作什么?

一样的咱们先来看看书上是咋说的:bash

  1. 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员能够构建、运行并分享 Docker 容器。容器能够再开发环境中构建,而后轻松的提交到测试环境中,并最终进入生产环境。
  2. 可以让独立的服务后应用程序在不一样的环境中,获得相同的运行结果。
  3. 用 Docker 建立隔离的环境来进行测试。
  4. Docker 可让开发者如今本机上构建一个复杂的程序或架构进行测试,而不是一开始就在生产环境部署、测试。
  5. 为开发、测试提供一个轻量级的独立的沙盒环境。
  6. 构建一个多用户平台的及服务( PaaS )基础设施。
  7. 提供软件即服务( SaaS )应用程序。
  8. 高性能、超大规模的宿主机部署。

好吧,我认可当我第一次看完的时候我依旧是一脸懵逼,彻底不知道这本书在说什么,你也有这种感受吗?架构

咱们不妨来回顾一下以前的项目运做的流程,首先会有需求,至于需求来自于何处这里咱们不作关心,而后 开发人员 会对需求进行分析,而后开始编码,而后开发人员会在本地进行测试,有问题就会继续改进,知道测试没有问题,就会提交代码,告诉 测试人员 能够测试了,而后测试人员就和拉去最新的代码,开始构建环境,让项目跑起来,而后进行一系列的测试,发现一大堆 BUG ,而后去找开发去修复 BUG 。性能

上面的所描述的流程目前看起来还与咱们的 Docker 没有什么关系,咱们接着向下看,当测试去找开发的时候,若是你是一个开发人员的话,你的第一反应是什么?测试

“我写的代码这么可能会有 BUG ,我在本地明明都好着,确定是测试环境的问题”,可是真的没有 BUG 吗?这个咱们没法作出假设,可是确确实实存在的一种状况是测试与开发环境之间的差别,最简单的开发是在 MAC 上进行的开发,而后测试在 Linux 或 Windows 上测试,那么这个问题就颇有多是环境的问题。ui

我还记得我刚开始玩 Linux 的时候常常遇到这种状况,按照某篇博客安装应用以后却没法启动,查看以后发现时依赖的问题,要么是缺乏某个依赖,这种状况仍是能够轻松的解决的,可是最怕的是依赖的版本不对,这就种状况就及其的麻烦,是这篇博客写的不对吗?恐怕不是,形成这种缘由的罪魁祸首就是你与博客做者之间的系统环境不一致。编码

那么 Docker 能够为咱们作什么?看看上面列举的第二条与第三条:spa

  1. 可以让独立的服务后应用程序在不一样的环境中,获得相同的运行结果。
  2. 用 Docker 建立隔离的环境来进行测试。

这是否是咱们所指望的呢!

其实 Docker 解决的一个最核心的问题就是为不一样的用户提供一个相同的虚拟化环境,这样你们就能够在相同的环境中进行开发、测试和部署,这样你就不会抱怨某篇博客垃圾了。

固然 Docker 的能力不只于此,毕竟咱们在前面写了 8 条 Docker 可以完成的事情(前五条都是围绕上面说的虚拟化环境的问题),只有你想不到的,没有 Docker 作不到的。

在关于什么是 Docker 这个话题上,不一样的有着不一样的观点,大多数博客或书籍都会告诉你一个正式的概念,或者告诉你 Docker 是有 Docker 公司发开的、开源的,当时对于一个刚刚接触 Docker 与容器方面技术的一个初学者来讲,这并不能解决你心中的疑惑,你依旧想问一个问题:什么是 Docker?

上文也只是从做者本身的角度来看看 Docker 究竟是什么,能够解决你的疑惑吗?我认为并不能,我也不但愿只是经过本文就能够解决你心中的疑惑。

若是对此有疑问,做者在这里建议你不妨去尝试一下 Docker 能作什么,而后再去思考 Docker 是什么这个问题。

2. 安装

请参照官方教程!!!

请参照官方教程!!!

请参照官方教程!!!

不要在网上看什么乱七八糟的教程、博客,记住安装就去看官方教程,这是血泪的教训。

这里连一些技术书籍上的安装教程也不建议参考,书上的教程可能会有一些落后,毕竟在做者写书以后技术依然在不断的发展

Docker 官方安装教程

官方教程提供了 Mac 、 Windows 、常见的 Linux 发型版本等等对应的教程,就连 AWS 等云平台的教程都有,相信我总有一款适合你。

image-20190716133237365

这里有一点须要注意的是 Docker 目前提供两个版本,分别是 Docker CE 和 Docker EE ,其中 Docker EE 是 Docker 公司提供的商业版本,咱们通常安装的是 Dcoker CE 。

2.1 验证是否安装成功

Docker 采起的是 C/S 架构的方式,即客户端与服务端,所以在安装 Docker 的时候通常须要所有安装(至少要安装服务端),所以在验证的时候也会验证这两部分是否都安装成功,很是简单,一条命令就能够搞定:

$ docker version
Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:06 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:26:28 2019
  OS/Arch:          linux/amd64
  Experimental:     false
复制代码

这里直接输出 Docker 的版本信息,观察输出你能够发现分别输出了 Client 和 Server 这两部分的版本信息,此时就安装成功了。

上面是 Docker 安装成功以后,而且正常运行的输出结果,可是有一种状况下会出现以下的输出:

Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:06 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
复制代码

出现这种状况是由于 Docker Service 没有启动,启动它就行:

# 在 CentOS 7 上启动 Docker 服务
$ systemctl start docker
复制代码
相关文章
相关标签/搜索