Debian / Ubuntu 安装 Docker 和 Docker Compose 教程

35 阅读3分钟

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

PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04, Ubuntu 22.04

什么是 Docker?

Docker 是一个开源的容器化平台,旨在简化应用程序的部署、运行和管理。它通过使用容器来打包应用程序及其所有依赖项(包括代码、运行时、系统工具、库和设置),从而确保应用程序在任何环境中都能一致地运行。

什么是 Docker Compose?

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。它允许用户使用 YAML 文件来配置应用程序的服务、网络和卷等组件,然后通过一个简单的命令来启动和管理这些服务。使用 Docker Compose,可以轻松地定义复杂的应用架构,并确保各个服务之间的依赖关系和配置能够正确地协调工作。

使用官方源安装 Docker

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

首先更新系统,安装一些必要的软件包:

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

从 Docker 官方下载 GPG 密钥,然后将这个密钥解密并保存到系统的密钥环中;配置软件源,以便能够从 Docker 官方仓库安装 Docker:

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

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

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker. List

然后更新系统后即可安装 Docker CE 和 Docker Compose 插件:

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

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

root@debian ~ # docker version
Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:29:22 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
 Version:          26.1.4
 API version:      1.45 (minimum version 1.24)
 Go version:       go1.21.11
 Git commit:       de5c9cf
 Built:            Wed Jun  5 11:29:22 2024
 OS/Arch:          linux/amd64
 Experimental:     true
 containerd:
 Version:          1.6.33
 GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
 Version:          1.1.12
 GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
 Version:          0.19.0
 GitCommit:        de40ad0

如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组:

apt install docker-ce-rootless-extras
sudo usermod -aG docker skyman            #将skyman用户加入docker组   

安装 Docker Compose

因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose

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

如果某些镜像或命令不兼容,则我们还可以单独安装 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文件赋予执行权限

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

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

修改 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,然后就可以开始愉快的安装各种软件啦~