问题描述
在这里是新的,还有我的Raspi 3 ^^
我试图让Pihole在Docker-compose中运行,但是每次我想启动它时都会收到此错误消息。
ERROR: for pihole Cannot start service pihole: driver Failed programming external connectivity on endpoint pihole (995a633f1e1fa2e0ec3ebde4065ee7c6ab5dc82452adf2ffcf10d3113295a369): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: for pihole Cannot start service pihole: driver Failed programming external connectivity on endpoint pihole (995a633f1e1fa2e0ec3ebde4065ee7c6ab5dc82452adf2ffcf10d3113295a369): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
我的配置
这是我的 docker-compose.yml 配置,就像在github上
version: "3"
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "80:80/tcp"
- "443:443/tcp"
- 8080:80
environment:
TZ: 'Europe/Berlin'
WEBPASSWORD: 'myPassword'
# Volumes store your data between container upgrades
volumes:
- './etc-pihole/:/etc/pihole/'
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
# Recommended but not required (DHCP needs NET_ADMIN)
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN
restart: unless-stopped
我的疑难解答
当我运行sudo lsof -iTCP -sTCP:LISTEN -P -n +c 10
时,我明白了:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 543 root 3u IPv4 18484 0t0 TCP *:22 (LISTEN)
sshd 543 root 4u IPv6 18486 0t0 TCP *:22 (LISTEN)
xrdp-sesma 592 root 7u IPv6 18529 0t0 TCP [::1]:3350 (LISTEN)
xrdp 603 xrdp 11u IPv6 18545 0t0 TCP *:3389 (LISTEN)
docker-pro 2877 root 4u IPv6 25751 0t0 TCP *:4357 (LISTEN)
docker-pro 7386 root 4u IPv6 36076 0t0 TCP *:8884 (LISTEN)
docker-pro 7400 root 4u IPv6 34359 0t0 TCP *:8883 (LISTEN)
docker-pro 7415 root 4u IPv6 36124 0t0 TCP *:1884 (LISTEN)
docker-pro 7428 root 4u IPv6 35103 0t0 TCP *:1883 (LISTEN)
docker-pro 9507 root 4u IPv6 42104 0t0 TCP *:9050 (LISTEN)
spotifyd 10195 root 18u IPv4 43347 0t0 TCP *:46551 (LISTEN)
python3 11346 root 17u IPv4 48294 0t0 TCP *:8123 (LISTEN)
ttyd 11498 root 12u IPv4 48157 0t0 TCP 172.30.32.1:62369 (LISTEN)
sshd 11499 root 3u IPv4 48140 0t0 TCP *:222 (LISTEN)
sshd 11499 root 4u IPv6 48141 0t0 TCP *:222 (LISTEN)
httpd 13801 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
httpd 13801 root 6u IPv6 53872 0t0 TCP *:443 (LISTEN)
httpd 13802 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
httpd 13802 root 6u IPv6 53872 0t0 TCP *:443 (LISTEN)
httpd 13803 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
httpd 13803 root 6u IPv6 53872 0t0 TCP *:443 (LISTEN)
httpd 13804 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
httpd 13804 root 6u IPv6 53872 0t0 TCP *:443 (LISTEN)
httpd 13907 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
httpd 13907 root 6u IPv6 53872 0t0 TCP *:443 (LISTEN)
我试图停止systemd解析的服务,但是我在shell中没有得到任何答案 我已经使用了以下命令:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
我用以下命令删除了resolv配置:
rm /etc/resolv.conf
并使用以下命令重新创建它:
nano /etc/resolv.conf
nameserver 127.0.0.1
nameserver 1.1.1.1
nameserver 222.222
我用crtl+x
保存了该文件,并通过sudo reboot
重新启动了整个系统
尝试通过以下方式开始打孔:
docker-compose -f /opt/containers/pi-hole/docker-compose.yml up -d
我遇到了与我的请求上部相同的问题。
我该如何解决?
感谢您的帮助!
解决方法
祝您好运。 对不起,但我可能会误会,但Docker默认在单独的网络(称为docker网桥网络)中运行,这使DHCP希望为该网络而不是您可能需要的LAN网络提供地址。 我可以建议您查看这份文档,因为我认为它可以帮助您前进。
https://docs.pi-hole.net/docker/DHCP/
,您已将pihole配置为侦听主机上的端口80,该端口已映射到容器中的端口80:
- "80:80/tcp"
您还有一个httpd服务器在端口80上监听:
httpd 13801 root 4u IPv6 53868 0t0 TCP *:80 (LISTEN)
因此,错误表明端口80正在使用:
Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
要解决此问题,请将pihole配置为映射其他端口(您已经设置了8080端口,但保留了80端口的映射),或者停止了httpd。