You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pi-hole Docker/Portainer Stack卷配置咨询:./路径含义及正确配置

Pi-hole Docker/Portainer Stack 正确配置方案

关于Docker中./的指向说明

  • 本地使用docker-compose命令时:./代表你执行docker-compose up命令时所在的终端工作目录,比如你在/home/user/pihole目录下执行命令,./etc-pihole就对应宿主机的/home/user/pihole/etc-pihole目录。
  • Portainer Stack中:如果直接在Web UI粘贴配置文件,相对路径./无法正确映射到宿主机目录(因为Portainer容器的工作目录并非你的目标目录),此时必须使用宿主机的绝对路径,或者采用Docker命名卷。

你的配置存在的问题

你在顶级volumes节点下的写法错误:Docker Compose中,顶级volumes用于定义命名卷,不能使用相对路径作为卷名。同时Portainer环境下相对路径绑定挂载不可靠,需要调整。

正确配置方案

方案1:使用宿主机绝对路径绑定挂载(适合本地/明确宿主机路径的场景)

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    restart: unless-stopped
    ports:
      - 53:53/tcp
      - 53:53/udp
      - 80:80/tcp
    # 添加时区环境变量,避免时间同步问题
    environment:
      - TZ=Asia/Shanghai
    volumes:
      # 替换为你宿主机上的实际绝对路径,比如 /home/yourname/pihole/etc-pihole
      - /path/to/your/etc-pihole:/opt/pihole/etc/pihole
      - /path/to/your/etc-dnsmasq.d:/opt/pihole/etc/dnsmasq.d

注意:提前在宿主机创建对应目录并设置权限,执行命令:sudo mkdir -p /path/to/your/etc-pihole /path/to/your/etc-dnsmasq.d && sudo chown -R 1000:1000 /path/to/your/etc-pihole /path/to/your/etc-dnsmasq.d(Pi-hole容器默认用UID/GID 1000运行)

方案2:使用Docker命名卷(推荐Portainer使用,无需关心绝对路径)

命名卷由Docker管理,无需手动创建目录,数据持久化更可靠:

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    restart: unless-stopped
    ports:
      - 53:53/tcp
      - 53:53/udp
      - 80:80/tcp
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - pihole-config:/opt/pihole/etc/pihole
      - pihole-dnsmasq:/opt/pihole/etc/dnsmasq.d

# 顶级volumes定义命名卷
volumes:
  pihole-config:
  pihole-dnsmasq:

补充说明

  • 首次启动Pi-hole后,可通过宿主机IP:80访问Web管理界面,初始密码可通过docker logs pihole | grep random命令查看。
  • 如果遇到端口冲突(比如53端口被宿主机dnsmasq占用),需要先停止宿主机上的相关服务,或者修改容器端口映射(比如5353:53/tcp),但这样需要将设备DNS指向宿主机IP:5353。

内容的提问来源于stack exchange,提问作者Duncan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:54:37