2017-07-05 15:40

(一)Docker 快速入门 - 安装

最近打算整理之前的 Docker 笔记发到weippt.com上的时候,是没打算写这么多篇幅的。但!但!但!重要的事情说三遍:这 2 年 Docker 变化之大,网上的各种资料、转贴看着直接就凌乱了,惨不忍睹!于是就写了这个系列,以便帮助大家能快速了解或回顾 Docker,如果你对 Docker 想深入了解,请阅读相关书籍或官方文档。在这个系列开始的几篇帖子中,部分内容都是基于《第一本Docker》的提炼,在后面篇幅中我们会有一些更深入的介绍,会探讨在集群、分布式方面的应用。

如果你是刚刚接触 Docker,建议你最好的学习和解决方案在@官方文档!网上搜到的资料多数是复制粘贴,而有些实用的帖子也可能因为 Docker 版本迭代之后不再实用。所以在这里我要先强调我的测试环境是VMware+Ubuntu16.04+Docker engine 17.05(17年5月) 。Docker 这2年更新迭代比较快,新技术层出不穷,去年的很多知识点现在都已经过时,所以在讲到相关技术变化时会特别说明。

  • Docker engine(引擎)
    包含 Docker 客户端和服务器的核心;

  • Docker image(镜像)
    构建 Docker 的基石,Docker生命周期中的构建或打包阶段,用户基于镜像运行自己的容器;

  • Docker Registry (Docker Hub)
    用于保存用户构建的镜像,类似GitHub,也分为公有和私有。用户可以使用 Docker 公司的公共 Registry(Docker Hub),也可以自己架设Registry。

  • Docker Container(容器)
    对于镜像而言,容器则是启动或执行阶段。Docker可以帮助用户构建和部署容器,用户只需要把自己的程序或服务打包放进容器即可。Docker容器是一个镜像格式、一系列标准的操作、一个执行环境。

这是Docker核心组件的四部分,这里先简单介绍下,不用搞明白,后面的实例操作后便会理清楚他们之间的关系。

快速安装

安装指南:https://docs.docker.com/engine/installation

Docker会在目录 /var/lib/docker 中存放着镜像、容器及容器配置。

在后面实例操作使用的是Debian系,RedHat系只需把apt替换为 yum 或 dnf 即可,差别无几。

我当前安装的是版本是:17.05,这也将是我们后面所有测试案例的基本环境!

Ubuntu

如果您的机器和系统不是古董级,在Ubuntu下直接运行:

$sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"

  注意< ubuntu-xenial >修改为您自己的发行版 (查看发行版 #sudo lsb_release --codename)

$sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  添加仓库GPG密钥

$sudo apt-get update

$sudo apt-get install docker-engine

RHEL6

首先在需要安装EPEL的机器上(根据需要选择指定版本)

$sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

$sudo yum -y install docker-io

RHEL7

$sudo subscription-manager repos --enable=rhel-7-server-extras-rpms

$sudo yum install -y docker

Fedora19/21

sudo yum -y install docker-io

Fedora20

sudo yum -y install docker

Fedora22

$sudo dnf install docker

OS X

参考:https://github.com/docker/toolbox/ 安装 Docker Toolbox 

确认安装

$sudo docker info

$sudo status docker 或 service docker status

启停就没神马好说的了,请自行Upstart、service、init、systemctl ...

Docker管理工具

一些常见工具,有兴趣的朋友可以了解,这里不做过多介绍。

Shipyard  ( https://github.com/shipyard/shipyard  )

DockerUI ( 基于AngularJS的Web界面 )

Kitematic ( OSX和Windows下的GUI界面工具,已包含在Toolbox中 )