一.docker的安装方式有三种

  1. 从存储库安装,如:yum。
  2. 下载rpm包自行安装,适用于无法联网的系统中安装。
  3. 通过脚本去安装,其实就是把docker的安装过程写成一个shell脚本。但是官方不推荐在生产环境使用这种方式,因为脚本运行可能需要root环境或者sudo特权,会有一定的风险。

二.使用YUM来安装

1. 要设置一个稳定的存储库

(1)设置存储库的命令yum-config-manager,该命令是在yum-utils包下,所以要先安装yum-utils

sudo yum install -y yum-utils

(2)设置稳定版docker的存储库,使用下面的存储库在下载docker的时候可能会比较慢,可以按需修改为国内的存储库
a.官方默认的存储库

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

b.或者设置为阿里的存储库

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

开启每夜更新源,好像是每天晚上更新存储库的,可以不设置

sudo yum-config-manager --enable docker-ce-nightly

开启测试版的源,可以不设置

sudo yum-config-manager --enable docker-ce-test

一般情况下使用第一条命名设置稳定版的存储库就可以了,docker-ce-nightly和docker-ce-test默认是关闭的。后续也可以按需开启或关闭。
2.安装docker引擎
安装docker引擎有两种方式:直接安装最新版和指定安装的版本
(1)安装最新的docker

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

如果提示您接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。
(2)指定安装的版本

a. 获取可用的版本列表

yum list docker-ce --showduplicates | sort -r

在这里插入图片描述

b. 使用以下命令安装

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

可以看到指定版本安装和安装最新版本的指令区别在于:指定版本安装的话,docker-ce和docker-ce-cli是需要带上指定的版本号的。<VERSION_STRING>是上一步的图中的第二列的版本,而且是从第一个冒号(:)后面开始截取直到第一个横杠(-)且不包含横杠。下面以第一个版本为例子:<VERSION_STRING>等价于19.03.9,所以安装版本为19.03.9的完整指令是

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

3.启动docker

sudo systemctl start docker

4.校验docker是否启动成功

sudo docker run hello-world

此命令下载测试镜像并在容器中运行。容器运行时,它会打印参考消息并退出。
在这里插入图片描述
以上docker安装结束…

三.把镜像库改为阿里的镜像库

  1. 创建daemon.json
sudo vim /etc/docker/daemon.json

2.添加以下内容

{
 "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}

3.重启docker

systemctl daemon-reload 
systemctl restart docker

四.关于docker-ce,docker-ce-cli,containerd.io这三个东西的解释

  • docker-ce
    Docker daemon, this is the part that does all the management work, requires the other two on Linux
    翻译:Docker守护进程,这是完成所有管理工作的部分,在Linux上需要另外两个。
    个人理解:是docker的核心模块了,它依赖于containerd.io和docker-ce-cli。

  • docker-ce-cli
    CLI tools to control the daemon, you can install them on their own if you want to control a remote Docker daemon
    翻译:CLI工具来控制守护进程,你可以安装它们如果你想控制一个远程Docker守护进程。
    个人理解:docker的客户端工具,docker-ce需要依赖docker-ce-cli是否可以理解为我们在Linux上操作的docker其实都是通过docker-ce-cli来操作的?

  • containerd.io
    daemon to interface with the OS API (in this case, LXC - Linux Containers), essentially decouples Docker from the OS, also provides container services for non-Docker container managers
    翻译:守护进程与操作系统API(在本例中是LXC-Linux容器)接口,本质上是将Docker与操作系统分离,还为非Docker容器管理器提供容器服务。
    个人理解:就是把docker与操作系统分离的一个组件,通过替换这个组件就可以实现docker运行在不同的操作系统,有点类似java和jvm的关系?

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐