先介绍一下docker是啥:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

再说一下docker compose是啥:

docker compose是docker三剑客之一,用于定义和运行多个容器 Docker 应用程序的工具。通过docker compose,你可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。Compose对应的命令为docker-compose。
简单一点说就是把一堆docker组合编排到一起以实现快速管理。

本文的目的是为了方便我配置swarm,所以用的版本都是比较新的。如果您只是单纯的使用docker或者docker compose则无需特别新的版本

好了,回归正题

1、如何安装docker

先查看内核版本以确定兼容哪些docker版本

[root@ecs ~]# uname -r
3.10.0-1062.9.1.el7.x86_64

如果这个地方显示内核版本为3.10.0则最大支持到docker-18.03.1.ce版本
我们想安装比较新的版本【因为旧版本不支持有些新特性】,所以我们首先要升级服务器的内核版本

[root@ecs ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@ecs ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@ecs ~]# yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
[root@ecs ~]# grub2-set-default 0
[root@ecs ~]# reboot

服务器正常重启之后可以看你心情选择是否执行以下命令去删除旧内核【可选项】

[root@ecs ~]# yum remove kernel

####ok,现在可以开始安装docker了
先看看是否有旧版本的docker,如果有可以用以下命令去卸载

[root@ecs ~]# yum remove docker docker-common docker-selinux docker-engine docer-io
  • 首先我们要更新一下yum包
    [root@ecs ~]# yum update -y
  • 其次要安装要依赖的软件包【yum-util 提供 yum-config-manager 功能, 另外两个是 devicemapper 驱动依赖】
    [root@ecs ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
  • 然后设置yum源
    [root@ecs ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 再查看仓库中所有docker版本,选择你想要的版本去安装
    [root@ecs ~]# yum list docker-ce --showduplicates | sort -r
  • 这里我需要docker-18.06.3.ce版本,你们按照你们的需求去选择版本
    [root@ecs ~]# yum install -y docker-ce-18.06.3.ce
  • 最后启动并加入开机自启
    [root@ecs ~]# systemctl start docker
    [root@ecs ~]# systemctl enable docker

2、如何安装docker compose

通过访问 https://github.com/docker/compose/releases 可以查看现有的所有版本,去选择合适的版本。
这里由于我需要最新的3.7的特性,所以刚才docker安装的版本是18.06.3,docker-compose我也选择最新的【1.24.1版本】去安装以支持新特性。

[root@ecs ~]# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@ecs ~]# chmod +x /usr/local/bin/docker-compose
[root@ecs ~]# docker-compose --version
docker-compose version 1.24.1, build 4667896b

最终显示docker-compose的版本即为安装成功。

注意: docker和docker compose配置文件里面版本要按照下面表格要求对应

即docker-compose.yml配置文件的第一行的这个版本号

version: "3.7"
compose文件版本 docker版本
1 1.9.0+
2.0 1.10.0+
2.1 1.12.0+
2.2, 3.0, 3.1, 3.2 1.13.0+
2.3, 3.3, 3.4, 3.5 17.06.0+
2.4 17.12.0+
3.6 18.02.0+
3.7 18.06.0+