温馨提示×

Debian中Docker如何配置

小樊
47
2026-09-26 07:47:18
栏目: 智能运维

下面按常见场景给你一份 Debian 下 Docker 的配置指南,从安装 → 基础配置 → 常用高级配置,你可以按需取用。


一、在 Debian 上安装 Docker

1. 卸载旧版本(可选)

sudo apt remove docker docker-engine docker.io containerd runc

2. 安装依赖

sudo apt update
sudo apt install -y ca-certificates curl gnupg

3. 添加 Docker 官方 GPG 密钥

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4. 添加 Docker 软件源

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 安装 Docker

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

6. 验证

sudo docker run hello-world

二、基础配置(常用)

1. 免 sudo 使用 Docker

sudo usermod -aG docker $USER

重新登录后生效。


2. 设置 Docker 开机自启

sudo systemctl enable docker
sudo systemctl start docker

三、Docker 守护进程配置(重要)

Docker 主配置文件:

/etc/docker/daemon.json

示例:常用配置

{
  "registry-mirrors": ["https://docker.m.daocloud.io"],
  "data-root": "/data/docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "dns": ["8.8.8.8", "114.114.114.114"]
}

修改后重启:

sudo systemctl restart docker

四、镜像加速(国内常用)

编辑 /etc/docker/daemon.json:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com"
  ]
}
sudo systemctl restart docker

五、Docker Compose 使用(推荐)

Debian 12+ 已内置插件:

docker compose version

示例:

docker compose up -d

六、存储目录迁移(可选)

如果 /var/lib/docker 空间不足:

  1. 停止 Docker
sudo systemctl stop docker
  1. 修改 daemon.json
{
  "data-root": "/data/docker"
}
  1. 移动数据
sudo rsync -avzP /var/lib/docker /data/
  1. 启动
sudo systemctl start docker

七、防火墙与 Docker(注意)

Debian 默认使用 nftables 或 iptables:

  • Docker 会自动管理 iptables
  • 不建议手动清除 Docker 规则

查看:

sudo iptables -L DOCKER

八、常见问题排查

1. Docker 起不来

sudo journalctl -u docker -xe

2. 容器无法上网

检查 DNS 和 daemon.json

3. 磁盘爆满

docker system prune -a

如果你有具体需求(比如:

  • Docker + Nginx
  • Docker 内网隔离
  • Docker 跨主机
  • Docker + systemd
  • Debian 无 GUI 服务器

可以直接告诉我,我可以给你针对性配置方案。

0 踩