Debian 11 / Ubuntu 20.04 安装 Docker 以及 Docker Compose 教程

本文将指导如何在 Debian 11 和 Ubuntu 20.04 下安装 Docker 以及 Docker Compose。

PS:本文同时适用于 Debian 10 Buster、Ubuntu 20.04 Focal 以及 Ubuntu 18.04 Bionic

什么是 Docker?

Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。

什么是 Docker Compose?

传统模式下运维人员需要运行 docker run 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 Docker Compose 来解决这个问题。

Docker Compose 是一种工具,用于帮助定义和共享多容器应用程序。 通过 Compose,你可以创建 YAML 文件来定义服务,并且只需一个命令,就可以启动或清理所有内容。使用 Compose 的巨大优点是,你可以在文件中定义应用程序堆栈,使其位于项目存储库的根目录下(它现在受版本控制),并方便其他人参与你的项目。 其他人只需克隆你的存储库即可开始撰写应用。 事实上,你可能会看到 GitHub/GitLab 上的很多项目现在都是这样做的。(via 使用 Docker Compose)

使用官方源安装 Docker

以下操作需要在 root 用户下完成,请使用 sudo -isu root 切换到 root 用户进行操作。

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg apt-transport-https lsb-release ca-certificates

然后加入 Docker 的 GPG 公钥和 apt 源:

wget -O /usr/share/keyrings/docker.asc https://download.docker.com/linux/debian/gpg
echo "deb [signed-by=/usr/share/keyrings/docker.asc] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
wget -O /usr/share/keyrings/docker.asc https://download.docker.com/linux/debian/gpg
echo "deb [signed-by=/usr/share/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

国内机器可以用清华 TUNA的国内源:

wget -O /usr/share/keyrings/docker.asc https://download.docker.com/linux/debian/gpg
echo "deb [signed-by=/usr/share/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
wget -O /usr/share/keyrings/docker.asc https://download.docker.com/linux/debian/gpg
echo "deb [signed-by=/usr/share/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

然后更新系统后即可安装 Docker CE:

apt update
apt-get install docker-ce docker-ce-cli containerd.io

此时可以使用 docker version 命令检查是否安装成功:

root@server ~ # docker version
Client: Docker Engine - Community
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.12
 Git commit:        e91ed57
 Built:             Mon Dec 13 11:45:48 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.12
  Git commit:       459d0df
  Built:            Mon Dec 13 11:43:56 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

安装 Docker Compose

我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

此时可以使用 docker-compose version 命令检查是否安装成功:

root@debian ~ # docker-compose version
Docker Compose version v2.2.3

修改 Docker 配置

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

然后重启 Docker 服务:

systemctl restart docker

好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

文章来源:

Author:烧饼
link:https://u.sb/debian-install-docker/