在 Ubuntu 上安装 Docker | Install Docker in Ubuntu

安装 Docker 有两种方式, 一种是通过包管理器, 另一种则是通过二进制文件的安装方式, 期中个人认为比较方便的是通过包管理器安装最方便且后续更新直接apt updateapt upgrade即可, 缺点就是必须有网. 不过不联网的机器应该挺少的吧. 这里简述一下包管理器安装的过程.

系统要求

  • Ubuntu Groovy 20.10
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)
  • Ubuntu Xenial 16.04 (LTS)

    总之就是16.04及以上就行了

老版本的Docker怎么办?

如果有类似 docker, docker.io, 或 docker-engine的软件包, 删除即可.
其中数据不会被删除会保留在/var/lib/docker/.

  • 删除命令
    1
    sudo apt-get remove docker docker-engine docker.io containerd runc

1. 增加源在包管理器处.

  • 1.1 更新并安装前置工具.

    1
    sudo apt update
  • 1.2 增加Docker官方的GPG公钥至证书链.

    1
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • 1.3 增加Docker源到包管理器.

    这里需要确定CPU的类型, 大家需根据自己的情况进行选择.

    其实阿里云的源就是把地址换成了阿里云的.

    • 1.3.1 x86_64 / amd64
      • 官方的源:
        1
        2
        3
        echo \
        "deb [arch=amd64 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
      • 阿里云的源:
        1
        2
        3
        echo \
        "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
        $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • 1.3.2 armhf
      • 官方的源:
        1
        2
        3
        echo \
        "deb [arch=armhf 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
      • 阿里云的源:
        1
        2
        3
        echo \
        "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
        $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • 1.3.3 arm64
      • 官方的源:
        1
        2
        3
        echo \
        "deb [arch=arm64 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
      • 阿里云的源:
        1
        2
        3
        echo \
        "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
        $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. 更新并安装Docker引擎

  • 2.1 更新

    1
    sudo apt update
  • 2.2 安装Docker引擎

    1
    sudo apt install docker-ce docker-ce-cli containerd.io
  • 2.3 安装完成

    • 可以使用docker -v来验证docker安装完成, 但是这只能验证docker包安装完成了, 其他包并不能被确认.

      1
      docker -v
    • 可以使用docker run hello-world来启动一个container来一并验证其他功能.

      1
      docker run hello-world

3. 后续升级Docker

后续升级Docker非常方便, 直接使用包管理器升级即可.

  • 3.1 检查升级Docker
    1
    sudo apt update
  • 3.2 升级Docker
    1
    sudo apt upgrade

4. 结束语

Docker真的是非常方便的一个工具, 而且对于资源的利用应该是仅次于KVM了吧. 而且吸引人还是轻便 高可用性 和 主机隔离 等等等等.

但是如果只安装一个或者是两个容器的话, 那其实就没必要一定安装了, 毕竟Docker的自身服务也要占用不少资源.

假设安装个MariaDB的话, 在主机上安装真的挺麻烦的, 且卸载时会有很多残留. 但在Docker中只要一句或两句命令即可, 且所有文件均在映射的目录中. 下面两句命令就直接开启了一个 MariaDB 服务. 吹爆Docker.

1
2
docker volume create mariadb_data
docker run -d --name MariaDB -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=this_is_a_test_password -v mariadb_data:/var/lib/mysql --restart=unless-stopped mariadb:10.5.8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci