温馨提示×

DebianDocker容器如何管理

小樊
50
2026-09-26 07:49:20
栏目: 智能运维

在 Debian 上管理 Docker 容器,通常可以从安装、日常操作、网络/存储、运维监控、安全与备份几个方面来做。下面给你一套比较实用、偏“运维向”的管理指南。


一、安装与基础环境(Debian)

1. 安装 Docker(推荐官方源)

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

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

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

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

2. 基础配置

sudo systemctl enable --now docker
sudo usermod -aG docker $USER   # 免 sudo(重新登录生效)

二、容器日常管理

1. 常用命令

docker ps                 # 运行中容器
docker ps -a              # 所有容器
docker images             # 镜像列表
docker logs -f 容器名      # 查看日志
docker exec -it 容器名 bash
docker stop/start/restart 容器名
docker rm 容器名
docker rmi 镜像名

2. 使用 docker compose(推荐)

docker compose up -d
docker compose down
docker compose logs -f

示例 docker-compose.yml:

services:
  nginx:
    image: nginx:stable
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

三、容器资源管理

1. 限制资源

docker run -d \
  --memory=512m \
  --cpus=1 \
  nginx

2. 磁盘清理

docker system df
docker system prune
docker system prune -a

四、网络与存储

1. 网络

docker network ls
docker network create mynet
docker run --network=mynet nginx

2. 数据持久化(重要)

✅ 推荐用 volume:

docker volume create mysql_data
docker run -v mysql_data:/var/lib/mysql mysql

❌ 避免只靠容器内部存储


五、监控与排障

1. 资源监控

docker stats

2. 排障思路

  • 容器起不来 → docker logs
  • 端口不通 → docker ps + 防火墙
  • 磁盘满 → docker system df

六、安全与维护建议

  • ✅ 不用 --privileged 除非必要
  • ✅ 镜像用固定 tag(不用 latest)
  • ✅ 定期更新 Debian & Docker
  • ✅ 生产用 docker compose 或 swarm / k8s

七、备份与迁移

容器备份

docker export 容器名 > container.tar
docker import container.tar 新镜像名

数据备份

tar czf data.tar.gz /var/lib/docker/volumes/

如果你愿意,可以告诉我:

  • 是开发环境还是生产环境
  • 用 docker run 还是 compose
  • 是否涉及 数据库 / Web / 微服务

我可以直接给你一套可复制的管理方案或脚本。

0 踩