第2章 Docker核心概念与安装--2.2 Linux 各发行版内核升级与Docker 安装

Docker 支持在主流的操作系统平台上使用,包括Ubuntu、Centos、Windows以及MacOS系统等。当然,在Linux系列平台上是原生支持,使用体验也是最好。

官方网站上有各种环境下的 安装指南,这里主要介绍下 Ubuntu、Debian 和CentOS 系列的安装。

Ubuntu、Debian 、CentOS系列安装 Docker

系统要求

Docker 支持以下版本的 Ubuntu 和 Debian 操作系统:

  • Ubuntu Xenial 16.04 (LTS)
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Precise 12.04 (LTS)
  • Debian testing stretch (64-bit)
  • Debian 8 Jessie (64-bit)
  • Debian 7 Wheezy (64-bit)(必须启用 backports)
  • CentOS 6 及更高的版本CentOS 7

Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。

Docker 目前支持的 Ubuntu 版本最低为 12.04 LTS,但从稳定性上考虑,推荐使用14.04 LTS 或更高的版本。

Docker 需要安装在 64 位的 x86 平台或 ARM 平台上(如树莓派),并且要求内核版本不低于 3.10。但实际上内核越新越好,过低的内核版本可能会出现部分功能无法使用,或者不稳定。

用户可以通过如下命令检查自己的内核版本详细信息:

$ uname -a 
Linux centos 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

升级内核

如果内核版本过低,可以用下面的命令升级系统内核。这块废话有点多,不需要升级内核的直接跳过:)

Ubuntu 12.04 LTS

sudo apt-get install -y --install-recommends linux-generic-lts-trusty

Ubuntu 14.04 LTS

sudo apt-get install -y --install-recommends linux-generic-lts-xenial

CentOS 7

更新:

$ yum -y update

启用ELRepo  仓库:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

仓库启用后,你可以使用下面的命令列出可用的内核相关包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装最新内核:

# yum --enablerepo=elrepo-kernel install kernel-ml

--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel替换。

最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:

$ uname -sr

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

接下来运行下面的命令来重新创建内核配置。

# grub2-mkconfig -o /boot/grub2/grub.cfg

重启并验证最新的内核已作为默认内核。

Debian 7 Wheezy

Debian 7 的内核默认为 3.2,为了满足 Docker 的需求,应该安装  backports  的内核。
执行下面的命令添加  backports  源:

$ echo "deb http://http.debian.net/debian wheezy-backports main" | sudo tee /etc/apt/sources.list.d/backports.list

升级到  backports  内核:

$ sudo apt-get update
$ sudo apt-get -t wheezy-backports install linux-image-amd64

Debian 8 Jessie

Debian 8 的内核默认为 3.16,满足基本的 Docker 运行条件。但是如果打算使用 overlay2  存储层驱动,或某些功能不够稳定希望升级到较新版本的内核,可以添加  backports  源,升级到新版本的内核。
执行下面的命令添加  backports  源:

$ echo "deb http://http.debian.net/debian jessie-backports main" | sudo tee /etc/apt/sources.list.d/backports.list

升级到  backports  内核:

$ sudo apt-get update
$ sudo apt-get -t jessie-backports install linux-image-amd64

需要注意的是,升级到  backports  的内核之后,会因为  AUFS  内核模块不可用,而使用默认的  devicemapper  驱动,并且配置为  loop-lvm  ,这是不推荐的。因此,不要忘记安装 Docker 后,配置  overlay2  存储层驱动。

配置 GRUB 引导参数
在 Docker 使用期间,或者在  docker info  信息中,可能会看到下面的警告信息:

WARNING: Your kernel does not support cgroup swap limit. WARNING:
Your kernel does not support swap limit capabilities. Limitation disc arded.

或者

WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No oom kill disable support

如果需要这些功能,就需要修改 GRUB 的配置文件  /etc/default/grub  ,在GRUB_CMDLINE_LINUX  中添加内核引导参数 cgroup_enable=memory
swapaccount=1  。
然后不要忘记了更新 GRUB:

$ sudo update-grub
$ sudo reboot

安装 Docker

Ubuntu

  • Ubuntu 14.04 及以上版本

Ubuntu 14.04 版本官方软件源中已经自带了 Docker 安装包,可以直接安装:

$ sudo apt-get update
$ sudo apt-get install -y docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$ acomplete -F _docker docker' /etc/bash_completion.d/docker.io

以上流程使用Ubuntu 14.04系统默认自带 docker.io 安装包安装docker ,显然安装的Docker版本相对交旧。

显然,有另一种方式:

$ sudo apt-get install docker-engine

如果系统中存在旧版本的 Docker ( lxc-docker  ,  docker.io  ),会提示是否先删除,选择是即可。这种方式适用于 Debian 系统安装Docker。

  • Ubuntu 14.04 以下的版本

若果使用较低版本的Ubuntu系统,则需要先进行内核升级并重启系统后再进行安装。

$ sudo apt-get update
$ sudo apt-get install -y linux-image-generic-lts-raring linux-headers-generic-lts-raring
$ sudo reboot

重启后,重复在Ubuntu 14.04系统的安装步骤即可。就是上述的另一种方式。

CentOS

Docker 支持CentOS 6 及以后的版本。

对于CentOS 6 系统使用 EPEL 库安装Docker ,命令如下:

   首先关闭selinux:

# setenforce 0

# sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

在Fedora EPEL源中已经提供了docker-io包,下载安装epel :

$ sudo rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

$ sudo sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

yum安装docker-io:

$ sudo yum -y install docker-io

对于 CentOS 7 系统,由于 CentOS-Extras 源中已内置Docker,我们可以直接使用 yum 命令进行安装:

$ sudo yum install -y docker

目前在 CentOS 系统中更新Docker 软件有两种方法,一是自行通过源码编译安装,二是下载二进制文件进行更新。

其他安装方式

脚本安装

Docker 官方为了简化安装流程,提供了一套安装脚本,Ubuntu 和 Debian 系统可以使用这套脚本安装:

$ sudo curl -sSL https://get.docker.com/ | sh

国内使用的话,可能被墙,连接超时...,在国内可以使用修改的脚本:

阿里云的安装脚本

$ sudo curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

DaoCloud 的安装脚本

$ sudo curl -sSL https://get.daocloud.io/docker | sh

手动安装

这部分以后有时间再弄吧。。。也是找文档来部署。

后文中使用 $ 作为终端引导符时,表示非 root 权限用户;# 表示是 root 用户。

另外,Windows 和MacOS系统的Docker 安装不更了。。。因为本人主要是在CentOS 7 上进行docker 操作的。

启动 Docker 引擎

Ubuntu 12.04/14.04、Debian 7 Wheezy、CentOS 6

$ sudo service docker start

Ubuntu 16.04、Debian 8 Jessie/Stretch、CnetOS 7

$ sudo systemctl enable docker
$ sudo systemctl start docker

建立 docker 用户组

默认情况下, docker  命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root  用户和  docker  组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用  root  用户。因此,更好地做法是将需要使用  docker  的用户加入  docker  用户组。

建立  docker  组:

$ sudo groupadd docker

将当前用户加入  docker  组:

$ sudo usermod -aG docker $USER

参考文档

Docker 官方 Ubuntu 安装文档

Docker 官方 Debian 安装文档

Docker 官方 CentOS 安装文档

你可能感兴趣的:(docker,Linux,虚拟机,Docker技术入门与实战,docker,安装,Ubuntu,内核升级,CentOS,7,内核升级,docker用户组,脚本安装docker)