Docker之四:Linux Docker 安装
- Ubuntu Docker安装
- 安装前准备
- 使用Docker仓库进行安装
- 设置仓库
- 安装Docker Engine
- 升级Docker Engine
- 安装包手动安装
- 脚本安装
- Docker管理
虽然常见的Linux发现版本系统有许多,比如Ubuntu、Debain、CentOS、Fedora,但是它们安装Docker的方式都是相通的。Docker的官网为用户提供了详细的安装手册。本文将以Ubuntu为例说明Linux Docker的安装过程。
我们可以查看官方的Ubuntu Docker安装教程,如下图所示:
Ubuntu Docker安装
平台系统信息:
Ubuntu Docker部署有三种方式:
- 使用Docker仓库安装,此方法可以简化安装和升级任务,也是官方推荐的方法。
- 下载DEB包手动安装,全手动管理升级,适合无法联网的情况下进行离线安装。
- 测试或开发环境,使用官方的自动化安装脚本进行安装。
安装前准备
在进行安装前首先需要确认,当前系统是否已经安装了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。
- 更新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
- 添加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]
- 使用以下命令设置稳定存储库:
注意:下面的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
- 更新apt包索引,安装最新版本的Docker Engine和Containerd,或者进入下一步安装具体版本:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
- 要安装特定版本的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
- 通过运行hello-world image验证Docker Engine是否已正确安装:
$ sudo docker run hello-world
升级Docker Engine
要升级Docker Engine,请先运行sudo apt-get update,然后按照安装说明操作,选择要安装的新版本。
安装包手动安装
除了使用Docker的仓库安装Docker Engine外,有时需要离线手动安装,方法是在官网下载.deb文件,手动安装。每次升级Docker都需要下载一个新的文件。
- 访问https://download.docker.com/linux/ubuntu/dists/,选择Ubuntu版本,然后转到pool/Stability/目录,选择amd64、armhf或arm64,并下载想要安装的Docker Engine版本的.deb文件。
- 安装Docker Engine
# 执行下面的命令,请使用真实的安装包路径
$ sudo dpkg -i /path/to/package.deb
执行完成后Docker的守护进程会自动启动。
- 通过运行hello-world image验证Docker Engine是否已正确安装:
$ sudo docker run hello-world
脚本安装
Docker在get.docker.com和test.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