脚本自动安装

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

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

博主演示第一个。

[root@localhost ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# Executing docker install script, commit: 3d8fe77c2c46c5b7571f94b42793905e5b3e42e4
+ sh -c 'yum install -y -q yum-utils'
警告:/var/cache/yum/x86_64/7/base/packages/libxml2-python-2.9.1-6.el7.5.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
libxml2-python-2.9.1-6.el7.5.x86_64.rpm 的公钥尚未安装
导入 GPG key 0xF4A80EB5:
用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+ sh -c 'yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo'
已加载插件:fastestmirror
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/10): docker-ce-stable/x86_64/updateinfo | 55 B 00:00:00
(2/10): docker-ce-stable/x86_64/filelists_db | 23 kB 00:00:00
(3/10): docker-ce-stable/x86_64/primary_db | 51 kB 00:00:00
(4/10): docker-ce-stable/x86_64/other_db | 116 kB 00:00:00
(5/10): base/7/x86_64/other_db | 2.6 MB 00:00:01
(6/10): extras/7/x86_64/filelists_db | 224 kB 00:00:00
(7/10): base/7/x86_64/filelists_db | 7.2 MB 00:00:01
(8/10): updates/7/x86_64/other_db | 334 kB 00:00:00
(9/10): extras/7/x86_64/other_db | 134 kB 00:00:00
(10/10): updates/7/x86_64/filelists_db | 2.7 MB 00:00:00
元数据缓存已建立
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.1-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
docker-ce-20.10.1-3.el7.x86_64.rpm 的公钥尚未安装
导入 GPG key 0x621E9F35:
用户ID : "Docker Release (CE rpm) <docker@docker.com>"
指纹 : 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
来自 : https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
for more information.

启动​​Docker​​。

[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service

查看​​Docker​​​版本,要​​Client​​​和​​Server​​​都有才行,​​Docker​​​是​​C/S​​架构,任何一端没有启动都不行。

[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 20.10.1
API version: 1.41
Go version: go1.13.15
Git commit: 831ebea
Built: Tue Dec 15 04:37:17 2020
OS/Arch: linux/amd64
Context: default
Experimental: true

Server: Docker Engine - Community
Engine:
Version: 20.10.1
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: f001486
Built: Tue Dec 15 04:35:42 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.3
GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.19.0
GitCommit: de40ad0

手动安装

如果已安装旧版本的​​Docker​​​,先卸载​​Docker​​以及相关的依赖项。

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

我之前就已经安装过​​Docker​​了,这里先进行卸载。

CentOS:安装Docker_docker


CentOS:安装Docker_docker_02

如果​​yum​​​报告未安装这些软件包(如下图),则可以继续安装​​Docker​​。

CentOS:安装Docker_centos_03

安装方法

可以根据需要,以不同的方式安装​​Docker Engine​​:

  • 设置​​Docker​​的仓库,并从中进行安装,以简化安装和升级任务。这是推荐的方法。
  • 下载并手动安装​​RPM​​​软件包, 需要完全手动管理升级。这在无法访问互联网的系统上安装​​Docker​​非常有用。
  • 在测试和开发环境中,使用自动脚本来安装​​Docker​​。

这里只介绍推荐的方法来安装​​Docker​​。

设置仓库

在系统上首次安装​​Docker Engine​​​之前,需要设置​​Docker​​​仓库。之后,你可以从仓库安装和更新​​Docker​​​。先安装​​yum-utils​​​软件包(提供​​yum-config-manager​​程序)。

$ sudo yum install -y yum-utils

CentOS:安装Docker_linux_04


CentOS:安装Docker_linux_05


设置一个稳定的仓库,使用官方地址(比较慢)。

$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

阿里云地址。

$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学地址。

$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

CentOS:安装Docker_centos_06

安装Docker Engine

安装最新版本的​​Docker Engine​​​和​​containerd​​,或者安装特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

CentOS:安装Docker_centos_07

如果提示你接受​​GPG​​​密钥,请验证指纹是否匹配 ​​060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35​​​,如果匹配,则输入​​y​​。

CentOS:安装Docker_centos_08


要安装特定版本的​​Docker Engine​​,请在仓库中列出可用版本,然后选择并安装。

  1. 列出并排序你仓库中可用的版本。本示例按版本号(从高到低)对结果进行排序:​​$ yum list docker-ce --showduplicates | sort -r​​。
  2. CentOS:安装Docker_linux_09

  3. 通过完整的软件包名称安装特定版本,完整的软件包名称是软件包名称(​​docker-ce​​)加上版本字符串(上图第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:​​docker-ce-19.03.13​​:
    ​$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io​​。

启动Docker

$ sudo systemctl start docker

CentOS:安装Docker_docker_10


通过运行​​hello-world image​​​来验证是否正确安装了​​Docker Engine​​:

$ sudo docker run hello-world

此命令会下载​​image​​ 并在容器中运行它。容器运行时,它会打印消息并退出。

CentOS:安装Docker_docker_11


这样就说明安装成功了。

CentOS:安装Docker_linux_12


成功安装​​Docker19.03.13​​。