为了安装 Docker Compose,重新梳理一下整个安装流程。 :::info 注意:

  • 通过 pip 方式安装 Python version of Compose,只能安装 Compose v1;
  • 如果想安装 Docker Compose 新的稳定版本(如 v2.5.0),可以按照本文的步骤进行安装; :::

    1. Install Docker Engine on Ubuntu

    1.1 OS requirements

  • 需要一个64位的 Ubuntu 系统

    • Ubuntu Jammy 22.04 (LTS)
    • Ubuntu Impish 21.10
    • Ubuntu Focal 20.04 (LTS)
    • Ubuntu Bionic 18.04 (LTS)

      1.2 Uninstall old versions

      1. sudo apt-get remove docker docker-engine docker.io containerd runc

      1.3 Install using the repository

      官方提供了多种方式安装 Docker,这里选择 set up Docker’s repositories 方式安装,因为后续 Compose 依赖这种安装方,而且这也是官方推荐的方式,它简化了安装和升级的步骤。

      (1) Set up the repository

  • 更新 apt package,并安装一些必要工具

    sudo apt-get update
    
    sudo apt-get install \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    
  • 添加 Docker GPG key ```shell curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


- 配置稳定版的 repository
```shell
 echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

:::warning 注意:
以上官方提供的步骤中添加的源地址,国内可能无法 update package,解决办法:

  • 确认系统的版本,如:Debian系统下:cat /etc/issue, cat /etc/debian_version
  • choose your Linux distribution 页面确认版本的名称,例如,debian 10 对应名称 Debian buster 10
  • 手动添加源地址的国内镜像:

    • sudo vim /etc/apt/sources.list.d/docker.list
    • 添加内容:deb [arch=amd64] [https://mirrors.ustc.edu.cn/docker-ce/linux/debian](https://mirrors.ustc.edu.cn/docker-ce/linux/debian) buster stable :::

      (2) Install Docker Engine

  • 更新 apt package,安装 Docker Engine,containered,Compose

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    

    :::info 注意:

  • 安装完成后,docker 相关的文件都在 /var/lib/docker,如 images,containers,volumes,networks

  • Docker Engine 默认安装的 storage driver 是 overlay2
  • 使用 Docker 官方仓库,拉取镜像的速度可能会比较慢,可以更换国内的镜像:

    • cat /etc/docker/daemon.json
    • 添加内容:
      • {"registry-mirrors": ["[https://liucwhk8.mirror.aliyuncs.com"]](https://liucwhk8.mirror.aliyuncs.com","https://hub-mirror.c.163.com"])}
    • sudo systemctl daemon-reload
    • sudo systemctl restart docker :::

      1.4 Uninstall Docker Engine

  • 卸载 Docker Engine,CLI,Containered,Compose packages

    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  • 删除 Image,containers,volumes,configuration 文件,这些不会因为卸载而自动删除,需要手动清除

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

    2. Manage Docker as a non-root user

    由于 Docker daemon 守护进程是绑定到 Unix socket 进行通信,而 Unix socket 需要 root 权限,所以 Docker daemon 守护进程始终以 root 身份运行,其他用户需要通过 sudo 访问它。

如果不想每次运行 docker 命令都要加上 sudo,需要做一下操作:

  • Create docker group

    sudo groupadd docker
    
  • 将当前用户添加到 docker group

    sudo usermod -aG docker $USER
    
  • 激活对用户组的修改

    newgrp docker
    
  • 验证可以不用加上 sudo 就可以运行 docker 命令

    docker info
    

    3. Configure Docker to start on boot

    :::info 注意:

  • Debian 和 Ubuntu 系统下,Docker 服务是默认开机自启动的;

  • 其他系统需要做一下操作,才能实现开机自启动; :::

  • 开启开机自启动:

    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service
    
  • 关闭开机自启动:

    sudo systemctl disable docker.service
    sudo systemctl disable containerd.service
    

    4. Install Compose on Ubuntu

    官方推荐 set up Docker’s repositories 方式安装 Compose。 :::info 注意:

  • 如果 Docker 是按照本文步骤安装的,那么 Compose 已经和 Docker Engine 一起同时安装了。

  • 如果 Docker 是按照其他方式安装的,可以按照下面的步骤单独安装 Compose。 :::

    4.1 Install using the repository

    (1) Set up the repository

    按照 Docker 安装《Set up the repository》中一样的步骤配置 repository。

    (2) Install Compose

    sudo apt-get update
    sudo apt-get install docker-compose-plugin
    
    校验 Compose 安装成功:
    docker compose version
    

    4.2 Uninstall Docker Compose

    rm $DOCKER_CONFIG/cli-plugins/docker-compose