🐳 Kali Linux 实战指南:安装 Docker 和 Docker Compose (2025最新版)

🐳 Kali Linux 实战指南:安装 Docker 和 Docker Compose (2025最新版)

在渗透测试和安全研究中,Docker 提供了安全隔离的实验环境。本文将手把手教你如何在 Kali Linux 上安装 Docker 和 Docker Compose,并配置国内镜像加速器!


🚀 一、安装 Docker(Kali 2025专用方法)

1. 准备工作

# 更新系统
sudo apt update && sudo apt full-upgrade -y

# 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

2. 添加 Docker 官方 GPG 密钥

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

3. 设置稳定版仓库

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

4. 安装 Docker 引擎

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

5. 验证安装

sudo docker run hello-world
# 看到 "Hello from Docker!" 表示成功

⚡ 二、配置 Docker 国内镜像加速器

1. 创建配置文件

sudo nano /etc/docker/daemon.json

2. 添加阿里云镜像加速器(2025最新)

{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://hub-mirror.c.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}

3. 重启服务生效

sudo systemctl daemon-reload
sudo systemctl restart docker

# 检查配置
docker info | grep Mirrors -A 2

🔌 三、安装 Docker Compose(独立版)

虽然 Docker 内置 compose-plugin,但建议安装独立版增强兼容性:

# 下载最新版 (2025年7月)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 设置可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version
# 输出: Docker Compose version v2.25.0

🔒 四、非Root用户使用Docker(安全必做)

1. 添加当前用户到docker组

sudo usermod -aG docker $USER

# 立即生效
newgrp docker

2. 测试非特权用户权限

docker run --rm alpine echo "非root用户成功运行容器!"

🧪 五、实战测试:部署 WordPress 环境

创建 docker-compose.yml 文件:

version: '3.8'

services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wordpress-net

  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    volumes:
      - wp_data:/var/www/html
    networks:
      - wordpress-net
    depends_on:
      - db

volumes:
  db_data:
  wp_data:

networks:
  wordpress-net:

启动服务:

docker-compose up -d
# 访问 http://localhost:8080 完成安装

⚠️ 六、安全加固建议

  1. 限制容器资源

    # 在docker-compose.yml中添加
    resources:
      limits:
        cpus: '1.0'
        memory: 512M
    
  2. 定期更新镜像

    docker-compose pull
    docker image prune -f
    
  3. 使用只读文件系统

    # 在服务配置中添加
    read_only: true
    
  4. 容器进程监控

    watch -n 5 "docker stats --no-stream"
    

🛠️ 七、常见问题排查

  1. 权限被拒绝

    sudo chown $USER:$USER /home/$USER/.docker -R
    sudo chmod g+rwx /home/$USER/.docker -R
    
  2. 端口冲突

    netstat -tuln | grep 8080  # 查看占用
    
  3. 容器无法联网

    docker network inspect bridge
    systemctl restart systemd-resolved
    
  4. 磁盘空间不足

    docker system df  # 查看使用情况
    docker system prune -af  # 清理无用资源
    

💡 专业技巧(渗透测试场景)

  1. 快速部署漏洞环境

    docker run -d -p 80:80 vulnerables/web-dvwa
    
  2. 创建后渗透容器

    docker run -it --network host kalilinux/kali-rolling bash
    
  3. 保存自定义镜像

    docker commit [容器ID] my-custom-kali
    docker save my-custom-kali > kali-ctf.tar
    

最后一步:启用 Docker 自启动

sudo systemctl enable docker

使用案例:每次开机自动启动 Metasploit 容器:

docker run -d --name msf -p 4444:4444 kalilinux/kali-rolling msfconsole -q -x "db_connect user:pass@host/db; sleep infinity"

本文在 Kali Linux 2025.1 上测试通过。Docker 部署成功不仅可以提升工作效率,还能创建安全的研究环境。有任何问题欢迎在评论区交流!

posted @ 2025-07-16 19:12  昵-称  阅读(3490)  评论(1)    收藏  举报