现在越来越多的应用可以使用 Docker 一键部署,本文将介绍如何在最新的 Debian 13 (Trixie) 中安装 Docker 与 Docker Compose。
验证环境
1 2 3 4 5 6
| root@debian:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 13 (trixie) Release: 13 Codename: trixie
|
安装同样适用于 Ubuntu 26.04。
Docker 介绍
Docker 是一个开源的容器化平台,它可以将应用程序及其依赖打包到一个轻量级、可移植的容器中,使其能够在任何环境中一致地运行。
- 轻量:容器共享宿主机的操作系统内核,启动速度快,占用资源少。
- 可移植:容器可以在开发、测试和生产环境中一致运行,解决“环境不一致”的问题。
- 隔离性:每个容器都是独立运行的,互不影响。
- 快速部署:通过镜像技术,实现应用的快速打包、发布和部署。
Docker Compose 介绍
Docker Compose 是 Docker 提供的用于定义和管理多容器应用的工具。通过一个简单的 YAML 文件 docker-compose.yml,你可以定义和启动多个服务容器,使得应用的部署和管理更加便捷,可以不必使用长串的 docker run 命令。
特点:
- 多容器管理:同时启动、停止和管理多个容器。
- 通过 YAML 配置:通过
docker-compose.yml 定义服务、网络、存储等。
- 简化命令:使用单一命令
docker compose 管理容器。
本文将介绍安装 V2 版本,对应的命令是 docker compose。
使用官方源安装
以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。
首先,安装一些必要的软件包:
1 2 3
| apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
|
然后加入 Docker 的 GPG 公钥和 apt 源:
1 2
| 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
|
1 2
| curl -sSL https://download.docker.com/linux/ubuntu/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 的国内源:
1 2
| 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
|
1 2
| curl -sS https://download.docker.com/linux/ubuntu/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 插件:
1 2
| apt update apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
此时可以使用 docker version 命令检查是否安装成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Client: Docker Engine - Community Version: 29.6.1 API version: 1.55 Go version: go1.26.4 Git commit: 8900f1d Built: Fri Jun 26 11:40:34 2026 OS/Arch: linux/amd64 Context: default
Server: Docker Engine - Community Engine: Version: 29.6.1 API version: 1.55 (minimum version 1.40) Go version: go1.26.4 Git commit: 8ec5ab3 Built: Fri Jun 26 11:40:34 2026 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.5 GitCommit: e53c7c1516c3b2bff98eb76f1f4117477e6f4e66 runc: Version: 1.3.6 GitCommit: v1.3.6-0-g491b69ba docker-init: Version: 0.19.0 GitCommit: de40ad0
|
如果需要以非 root 模式运行 Docker,那么可以把特定用户也加入 docker 组,比如我们把 www-data 用户加进去:
1 2
| apt install docker-ce-rootless-extras sudo usermod -aG docker www-data
|
Docker Compose V2
Docker 已自带 Docker Compose V2 版本,即 docker compose 命令:
1 2
| root@debian:~# docker compose version Docker Compose version v5.2.0
|
修改 Docker 配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘:
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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 服务:
1
| systemctl restart docker
|
Docker 常用命令使用介绍
快速了解一下 docker 常见命令,使用 docker compose 进行管理会更方便。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| docker pull <镜像名>:<标签>
docker ps
docker ps -a
docker images
docker rmi <镜像ID或名称> docker rmi ubuntu:latest
docker run -d -p <宿主端口>:<容器端口> --name <容器名> <镜像名>
docker start / stop / restart / rm <容器名或ID>
docker exec -it <容器名或ID> /bin/bash
docker logs <容器名或ID>
docker system df
docker image prune -a
|
Docker Compose 使用介绍
docker compose 需要在 docker-compose.yml 文件所在的工作目录执行,这里推荐创建一个工作目录,在其中统一存放配置文件,比如:
1 2 3 4 5 6 7
| docker/ ├── nginx/ │ └── docker-compose.yml ├── mysql/ │ └── docker-compose.yml └── redis/ └── docker-compose.yml
|
docker compose 常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| docker compose pull
docker compose up
docker compose up -d
docker compose stop
docker compose down
docker compose restart
docker compose ps
docker compose logs
docker compose logs -f
docker compose exec <服务名> <命令> docker compose exec nginx /bin/bash
docker compose stats
|
docker compose 还是太长? 执行下面的命令后就可以使用 dc 作为替代:
执行前,先运行一下 dc 确认命令当前没有在使用,执行后运行 dc version 确认。
1 2
| echo 'alias dc="docker compose"' >> ~/.bashrc source ~/.bashrc
|
1 2
| echo 'alias dc="docker compose"' >> ~/.zshrc source ~/.zshrc
|
效果:
1 2 3 4 5
| root@debian:~# dc -bash: dc: command not found
root@debian:~# dc version Docker Compose version v5.2.0
|
之后,当我们创建了 docker-compose.yml 文件后,启动或是更新服务只需要执行:
现在前往 GitHub 或是 Docker Hub 寻找有趣的项目吧!
评论