以下内容来自官网https://docs.docker.com/get-docker/
获取Docker
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付,测试和部署代码的方法,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
您可以在多个平台上下载并安装Docker。请参考以下部分,并为您选择最佳的安装路径。
安装Docker引擎
以下内容来自官网https://docs.docker.com/engine/install/
支持的平台
在centos上安装docker
前提:
centos7
centos-extra库必须启用
yum安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
step1安装必要的工具
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
step2 添加软件源信息
使用官方源地址(比较慢,可能会超时)
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可以选择国内的一些源地址:
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
step3安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:
yum install -y docker-ce docker-ce-cli containerd.io
如果提示您接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。
有多个Docker存储库吗?
如果您启用了多个Docker存储库,则在未在yum installor yum update命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。
要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
yum list docker-ce --showduplicates | sort -r
返回的列表取决于启用了哪些存储库,并且特定于您的CentOS版本(.el7在本示例中以后缀表示)。
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
step4启动Docker。
systemctl start docker
step5通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
[root@localhost etc]# docker run hello-world
step6查看docker版本
[root@localhost etc]# docker version
升级DOCKER引擎
要升级Docker Engine,请按照安装说明,选择要安装的新版本。
rpm包安装(没说下载那些文件,版本关系怎么对应,没有尝试)
如果无法使用Docker的存储库安装Docker,则可以下载该.rpm发行版的 文件并手动安装。每次要升级Docker Engine时,都需要下载一个新文件。
转到https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览x86_64/stable/Packages/ 并下载.rpm您要安装的Docker版本的文件。
安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。
$ sudo yum install /path/to/package.rpm
启动Docker。
$ sudo systemctl start docker
通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
$ sudo docker run hello-world
升级DOCKER引擎
要升级Docker Engine,请下载较新的软件包文件,然后使用yum -y upgradeyum -y install 代替重复 安装过程,并指向新文件。
通过脚本安装
Docker在get.docker.com 和test.docker.com上提供了便利脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install存储库中。 不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:
- 脚本需要运行root或具有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
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
[root@localhost ~]# yum install -y yum-utils
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# sh get-docker.sh
检查docker版本
问题
启动docker失败,查询/var/log/messgaes,有如下告警
Jun 26 17:21:19 localhost dockerd: time="2020-06-26T17:21:19.672528882+08:00" level=info msg="Creating filesystem xfs on device docker-253:1-17738898-base, mkfs args: [-m crc=0,finobt=0 /dev/mapper/docker-253:1-17738898-base]" storage-driver=devicemapper
Jun 26 17:21:19 localhost dockerd: time="2020-06-26T17:21:19.682010061+08:00" level=info msg="Error while creating filesystem xfs on device docker-253:1-17738898-base: exit status 1" storage-driver=devicemapper
解决办法:
按照提示执行
[root@localhost etc]# mkfs.xfs -m crc=0,finobt=0 /dev/mapper/docker-253:1-17738898-base
报错,提示没有finobt参数
升级mkfs.xfs
[root@localhost etc]# yum search xfs
[root@localhost etc]# yum update xfsprogs
再次启动docker成功