环境说明

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