Docker之四:Linux Docker 安装

  • Ubuntu Docker安装
  • 安装前准备
  • 使用Docker仓库进行安装
  • 设置仓库
  • 安装Docker Engine
  • 升级Docker Engine
  • 安装包手动安装
  • 脚本安装
  • Docker管理


虽然常见的Linux发现版本系统有许多,比如Ubuntu、Debain、CentOS、Fedora,但是它们安装Docker的方式都是相通的。Docker的官网为用户提供了详细的安装手册。本文将以Ubuntu为例说明Linux Docker的安装过程。

我们可以查看官方的Ubuntu Docker安装教程,如下图所示:

Linux docker安装maven docker 安装 linux_docker

Ubuntu Docker安装

平台系统信息:

Linux docker安装maven docker 安装 linux_docker_02


Ubuntu Docker部署有三种方式:

  1. 使用Docker仓库安装,此方法可以简化安装和升级任务,也是官方推荐的方法。
  2. 下载DEB包手动安装,全手动管理升级,适合无法联网的情况下进行离线安装。
  3. 测试或开发环境,使用官方的自动化安装脚本进行安装。

安装前准备

在进行安装前首先需要确认,当前系统是否已经安装了Docker,可以使用“docker version”命令查看Docker版本。若系统已经有安装的版本,需要先卸载旧版本。卸载命令如下:

# 旧版本的Docker称为docker、docker.io或docker-Engine。如果安装了这些软件,请将其卸载:
$ sudo apt-get remove docker docker-engine docker.io containerd runc

如果以前安装过Docker,系统/var/lib/docker目录下会保存一些images、 containers、 volumes和networks文件,如果希望删除这些文件,以便从新安装Docker,可以卸载Docker Engine:

# Uninstall Docker Engine
# 1.卸载Docker Engine、CLI和Containerd软件包
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
# 2.删除所有images(映像)、containers(容器)和volumes(卷)
$ sudo rm -rf /var/lib/docker

Ubuntu上的Docker Engine支持overlay2、aufs和btrfs存储驱动。Docker Engine默认使用Overlay2存储驱动。如果需要使用aufs,则需要手动配置(配置方式在后面的文章详述)。

使用Docker仓库进行安装

设置仓库

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,可以从存储库中安装和更新Docker。

  1. 更新APT程序包索引并安装程序包,以允许APT通过HTTPS使用存储库:
# 更新 apt 包索引
$ sudo apt-get update
# 安装 apt 依赖包,用于通过HTTPS来获取仓库
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  1. 添加Docker官方GPG密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

通过搜索指纹的最后8个字符,验证您现在是否拥有指纹为9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88的密钥。

$ sudo apt-key fingerprint 0EBFCD88

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]
  1. 使用以下命令设置稳定存储库:
    注意:下面的lsb_ease-cs子命令返回您的Ubuntu发行版的名称,比如Xenial。有时,在Linux Mint这样的发行版中,您可能需要将$(lsb_ease-cs)更改为您的父Ubuntu发行版。例如,如果你使用的是Linux Mint Tessa,你可以使用仿生。Docker不对未经测试和不受支持的Ubuntu发行版提供任何保证。
# x86_64 / amd64,选择执行以下指令:
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
# armhf,选择执行以下指令:
$ sudo add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"  
# arm64,选择执行以下指令:
$ sudo add-apt-repository \
   "deb [arch=arm64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

安装Docker Engine

  1. 更新apt包索引,安装最新版本的Docker Engine和Containerd,或者进入下一步安装具体版本:
$ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 要安装特定版本的Docker Engine,请在Repo中列出可用版本,然后选择并安装:

(1)列出可用版本:

$ apt-cache madison docker-ce

  docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  ...

(2)选择安装特定版本,例如5:18.09.13-0ubuntu-Xenial:

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
  1. 通过运行hello-world image验证Docker Engine是否已正确安装:
$ sudo docker run hello-world

升级Docker Engine

要升级Docker Engine,请先运行sudo apt-get update,然后按照安装说明操作,选择要安装的新版本。

安装包手动安装

除了使用Docker的仓库安装Docker Engine外,有时需要离线手动安装,方法是在官网下载.deb文件,手动安装。每次升级Docker都需要下载一个新的文件。

  1. 访问https://download.docker.com/linux/ubuntu/dists/,选择Ubuntu版本,然后转到pool/Stability/目录,选择amd64、armhf或arm64,并下载想要安装的Docker Engine版本的.deb文件。
  2. 安装Docker Engine
# 执行下面的命令,请使用真实的安装包路径
$ sudo dpkg -i /path/to/package.deb

执行完成后Docker的守护进程会自动启动。

  1. 通过运行hello-world image验证Docker Engine是否已正确安装:
$ sudo docker run hello-world

脚本安装

Docker在get.docker.comtest.docker.com上提供了方便的脚本,可以快速、非交互地将Docker Engine-Community的EDGE和测试版安装到开发环境中。脚本的源代码位于docker-install存储库中。

不建议在生产环境中使用这些脚本,您应该在使用它们之前了解其潜在风险:

  • 这些脚本需要超级用户或sudo权限才能运行。因此,在运行脚本之前,您应该仔细检查和审计它们。
  • 这些脚本尝试检测您的Linux发行版和版本,并为您配置包管理系统。此外,脚本不允许您自定义任何安装参数。这可能会导致不受支持的配置,无论是从Docker的角度还是从您自己组织的指导方针和标准来看。
  • 脚本在不要求确认的情况下安装包管理器的所有依赖项和建议。这可能会安装大量程序包,具体取决于主机的当前配置。
  • 该脚本不提供指定安装哪个版本的Docker的选项,而是安装在“EDGE”通道中发布的最新版本。
    如果已使用其他机制在主机上安装了Docker,请不要使用便利性脚本。
    本例使用get.docker.com上的脚本在Linux上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令中,将每次出现的get替换为test。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

<output truncated>

如果您想以非超级用户身份使用Docker,您现在应该考虑将您的用户添加到“docker”组,如下所示:

sudo usermod -aG docker your-user

注意:我们可以利用官方的安装脚本自动安装Docker。

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 安装:

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

Docker管理

Ubuntu安装Docker后,默认已经启动,若需手动管理,可以使用以下命令:

# 启动docker
sudo service docker start

# 停止docker
sudo service docker stop

# 重启docker
sudo service docker restart