环境说明
1.Ubuntu: 18.04.2 LTS (GNU/Linux 4.15.0-52-generic x86_64)
卸载旧版本
安装新的Docker之前,最好卸载掉旧版本的Docker。旧版本的Docker称为 docker,docker.io,或者docker-engine,可以使用下面的命令卸载:
$ sudo apt-get remove docker docker.io docker-engine
当前(2019-12-09)的docker称为Docker-Engine Community 即docker-ce。
使用APT安装
如果是在新主机上首次安装docker,那么需要先设置docker仓库,以后就可以直接从仓库安装和更新docker。
设置仓库
1.更新软件包列表
$ sudo apt-get update
2.安装https依赖包
为了使apt可以通过https协议来使用仓库,所以先安装使用https所需要的依赖包。
apt-transport-https, ca-certificates, curl, gnupg-agent, software-properties-common
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
说明:
(1) apt-transport-https : 使apt可以通过https协议来进行数据传输。
(2) ca-certificates: CA证书,用于认证。
(3)curl: 命令行工具,名字来源于“Client URL”。
(4)gnupg-agent: 用于临时保存密钥。
(5)software-properties-common: 用于管理常见(common)的仓库(我们从仓库安装软件(software))。
3.添加Docker官方GPG[3]密钥
为了确认从Docker软件源所下载软件包是合法的,所以需要添加Docker软件源GPG密钥。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
说明:
(1)GPG:GnuPg[3]的简称。
(2)-fsSL: curl options(选项)。
-f:--fail,失败的时候阻止curl输出并返回错误码22.
-s: --silent, 静默模式,不显示任何信息.
-S: --show-error, 显示错误信息.
-L: --location, curl默认是不跟随重定向,-L参数让请求跟随服务器重定向.
(3) |: 管道(pipe)命令符。 作用是将前面一个命令得到的输出(stdout)作为下一个命令的输入(stdin)。
(4)apt-key: 作用是管理apt用于包认证的密钥列表。
(5)-: 代替stdout或者stdin。这里代替curl -fsSL https://download.docker.com/linux/ubuntu/gpg命令所得到的stdout。
4.设置稳定版仓库(软件源)
$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
说明:
(1)add-apt-repository: add-apt-repository是一个脚本命令,用于将外部的APT仓库添加到/etc/apt/source.list文件或者/etc/apt/sources.list.d目录下的某个文件。
(2) lsb_release: lsb_release -cs命令返回ubuntu发行版名称。
lsb: Linux Standard Base
-c: --codename,发相版代号,如:Codename:bionic
-s: --short,使用短输出格式,省略前导标头。
(3)软件源设置最好设置为国内源,下载更快
# 官方源
# $ sudo add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) \
# stable"
安装docker-ce
1.更新软件包列表
$ sudo apt-get update
2.安装 最新版的docker-ce
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
3.安装指定版本的 docker-ce
如果我们不想安装最新版的docker,想安装某个指定版本的docker怎么办呢?我们可以先列出仓库中所有版本的docker,然后选择某个版本安装即可。示例:
a.列出仓库中可用的docker
$ apt-cache madison docker-ce
说明:
(1)apt-cache: 提供搜索软件包,并输出相关信息。
madison: 模仿Debian的构建管理工具madison的输出格式。
apt-cache madison docker-ce: 搜索docker-ce,并模仿madison的输出形式输出关于docker-ce可用版本的信息。如:
root@iZwz94kwqu5mk9oxpv2m2tZ:~# apt-cache madison docker-ce
docker-ce | 5:19.03.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.03.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
b.使用第二列中的版本字符串(如18.03.1ce3-0~ubuntu)安装docker
$ sudo apt-get install docker-ce=5:18.09.0~3-0~ubuntu-bionic docker-ce-cli=5:18.09.0~3-0~ubuntu-bionic containerd.io
4.验证安装是否成功
通过运行hello-world镜像验证安装是否成功。
$ sudo docker run hello-world
参考资料
[1] 詹姆斯.特恩布尔(James Turnbull):《第一本Docker书》.
[2] Docker官网,Get Docker Engine - Community for Ubuntu:https://docs.docker.com/install/linux/docker-ce/ubuntu/
[3]阮一峰,GPG入门教程: https://www.ruanyifeng.com/blog/2013/07/gpg.html
er官网,Get Docker Engine - Community for Ubuntu:https://docs.docker.com/install/linux/docker-ce/ubuntu/
[3]阮一峰,GPG入门教程: https://www.ruanyifeng.com/blog/2013/07/gpg.html
[4]curl: https://curl.haxx.se/docs/manpage.html