# Debian 12 安装 Docker 以及 Docker Compose 教程 本文将指导如何在 Debian 12下安装 Docker 以及 Docker Compose。 *PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04, Ubuntu 22.04* 注意 ## 什么是 Docker? Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 [Docker 社区](https://www.docker.com/)致力于改进这类技术,并免费提供给所有用户,使之获益。 ## 什么是 Docker Compose? 传统模式下运维人员需要运行 `docker run` 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 [Docker Compose](https://docs.docker.com/compose/) 来解决这个问题。 Docker Compose 是一个用于在单个主机上定义和运行多个 Docker 容器的工具。它使用 YAML 文件来配置应用程序的服务,然后使用一个命令就可以创建并启动所有服务。使用 Docker Compose 可以大大简化 Docker 容器的管理和部署,特别是对于具有多个互相依赖的容器的复杂应用。 ## 使用官方源安装 Docker 以下操作需要在 root 用户下完成,请使用 `sudo -i` 或 `su root` 切换到 root 用户进行操作。 首先,安装一些必要的软件包: ```bash apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates ``` 然后加入 Docker 的 GPG 公钥和 apt 源: ```bash 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 #ubuntu使用如下 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/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list ``` 国内机器可以用[清华 TUNA](https://mirrors.tuna.tsinghua.edu.cn/) 的国内源: ```bash 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 #ubuntu使用如下 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/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list ``` 然后更新系统后即可安装 Docker CE 和 Docker Compose 插件: ```bash apt update apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` 此时可以使用 `docker version` 命令检查是否安装成功: ```bash root@Unprivileged-Docker:/root# docker version Client: Docker Engine - Community Version: 27.1.2 API version: 1.46 Go version: go1.21.13 Git commit: d01f264 Built: Mon Aug 12 11:50:58 2024 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 27.1.2 API version: 1.46 (minimum version 1.24) Go version: go1.21.13 Git commit: f9522e5 Built: Mon Aug 12 11:50:58 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.20 GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353 runc: Version: 1.1.13 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0 ``` 如果需要某个特定用户可以用 Docker [rootless](https://docs.docker.com/engine/security/rootless/) 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 `www-data` 用户加进去: ```bash apt install docker-ce-rootless-extras sudo usermod -aG docker www-data ``` ## 安装 Docker Compose 因为我们已经安装了 `docker-compose-plugin`,所以 Docker 目前已经自带 `docker compose` 命令,基本上可以替代 `docker-compose`: ```bash root@Unprivileged-Docker:/root# docker compose version Docker Compose version v2.29.1 ``` 如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose: 我们可以使用 Docker 官方发布的 [Github](https://github.com/docker/compose) 直接安装最新版本: ```bash 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` 命令检查是否安装成功: ```bash root@Unprivileged-Docker:/root# docker-compose version Docker Compose version v2.27.1 ``` ## 修改 Docker 配置 以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训): ```bash 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 服务: ```bash systemctl restart docker ``` 好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件 Loading... # Debian 12 安装 Docker 以及 Docker Compose 教程 本文将指导如何在 Debian 12下安装 Docker 以及 Docker Compose。 *PS:本文同时适用于 Debian 11 以及 Ubuntu 20.04, Ubuntu 22.04* 注意 ## 什么是 Docker? Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 [Docker 社区](https://www.docker.com/)致力于改进这类技术,并免费提供给所有用户,使之获益。 ## 什么是 Docker Compose? 传统模式下运维人员需要运行 `docker run` 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 [Docker Compose](https://docs.docker.com/compose/) 来解决这个问题。 Docker Compose 是一个用于在单个主机上定义和运行多个 Docker 容器的工具。它使用 YAML 文件来配置应用程序的服务,然后使用一个命令就可以创建并启动所有服务。使用 Docker Compose 可以大大简化 Docker 容器的管理和部署,特别是对于具有多个互相依赖的容器的复杂应用。 ## 使用官方源安装 Docker 以下操作需要在 root 用户下完成,请使用 `sudo -i` 或 `su root` 切换到 root 用户进行操作。 首先,安装一些必要的软件包: ```bash apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates ``` 然后加入 Docker 的 GPG 公钥和 apt 源: ```bash 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 #ubuntu使用如下 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/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list ``` 国内机器可以用[清华 TUNA](https://mirrors.tuna.tsinghua.edu.cn/) 的国内源: ```bash 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 #ubuntu使用如下 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/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list ``` 然后更新系统后即可安装 Docker CE 和 Docker Compose 插件: ```bash apt update apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` 此时可以使用 `docker version` 命令检查是否安装成功: ```bash root@Unprivileged-Docker:/root# docker version Client: Docker Engine - Community Version: 27.1.2 API version: 1.46 Go version: go1.21.13 Git commit: d01f264 Built: Mon Aug 12 11:50:58 2024 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 27.1.2 API version: 1.46 (minimum version 1.24) Go version: go1.21.13 Git commit: f9522e5 Built: Mon Aug 12 11:50:58 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.20 GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353 runc: Version: 1.1.13 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0 ``` 如果需要某个特定用户可以用 Docker [rootless](https://docs.docker.com/engine/security/rootless/) 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 `www-data` 用户加进去: ```bash apt install docker-ce-rootless-extras sudo usermod -aG docker www-data ``` ## 安装 Docker Compose 因为我们已经安装了 `docker-compose-plugin`,所以 Docker 目前已经自带 `docker compose` 命令,基本上可以替代 `docker-compose`: ```bash root@Unprivileged-Docker:/root# docker compose version Docker Compose version v2.29.1 ``` 如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose: 我们可以使用 Docker 官方发布的 [Github](https://github.com/docker/compose) 直接安装最新版本: ```bash 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` 命令检查是否安装成功: ```bash root@Unprivileged-Docker:/root# docker-compose version Docker Compose version v2.27.1 ``` ## 修改 Docker 配置 以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训): ```bash 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 服务: ```bash systemctl restart docker ``` 好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件 最后修改:2024 年 10 月 16 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏