好吧,我对整个 Docker 和网络的事情相当陌生,所以提前抱歉。
上周我尝试了 Docker compose,运行了 AdGuard 和 Jellyfin,并将 Homer 设置为仪表板。现在我想添加 Wireshark,但它给了我这个错误:
nging: [emerg] bind() to 0.0.0.0:3000 failed (98: Address in use)
我使用我的旧 MacBook Pro、Docker Desktop,并通过 docker 撰写文件来保存我的东西。
根据我的尝试,找出端口 3000 上的内容并杀死它,它是 Docker Desktop 本身。
我的设置如下:
我将所有内容都放在 VSCode 中,并通过docker compuse up -d
命令启动它。
AdGuard 撰写文件确实显示 3000:3000/tcp,但我在 AdGuardHome.yaml 中将其更改为 80,这样就可以了。
Homer 使用 8080:8080,而 Jellyfin 使用通常的 8096:8096。
我尝试对 Wireshark 使用端口 3030:3030 和 3031:3031,但日志输出与 3000 保持相同。
我的路由器上没有任何设置,也没有更改 Docker Desktop 内的任何内容。
有人可以帮助我,我在这里做错了什么吗?我需要改变什么吗?我不明白。
编辑:
这是我为wireshark编写的docker:
---
version: "2.1"
services:
wireshark:
image: lscr.io/linuxserver/wireshark:latest
container_name: wireshark
cap_add:
- NET_ADMIN
security_opt:
- seccomp:unconfined #optional
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- mypath:/config
ports:
- 3030:3030 #optional
- 3031:3031 #optional
restart: unless-stopped
始终尝试运行docker-compose down。
然后:
注意:这会删除所有图像。
额外:有时我必须重新启动我的虚拟机/电脑以确保端口不打开。
您可以使用 Check with
docker ps
命令来检查之前哪个服务正在使用该端口并将其停止。还有一件事要检查这里,docker hub 的官方页面
它提到了一个 docker compose 示例,而您的示例有误。在
ports
部分您无法控制端口的左侧,因为这是由映像预先配置的,使得容器将在端口上工作,
3000
如上所述。所以您可以更改以下内容:
如果您想更改容器使用的内部端口,官方文档中有一个名为 的选项
CUSTOM_PORT
,因此将其设置为环境变量会将3000
默认端口更改为您设置的端口。