我有一个码头集装箱,我想从局域网上的其他客户访问。我不想通过码头主机的IP访问它们,并将容器端口绑定到主机端口。我想通过它自己的IP地址访问这个容器,就像它是局域网上的一个独立的物理设备一样。
看来macvlan网络就是这样做的。我创建了一个像这样的macvlan网络:
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 network_macvlan其中,eth0是主机上的网络接口,--gateway IP指向路由器的网关IP。然后,在我的docker-compose.yml文件中,我将刚刚创建的网络声明为外部,并创建服务:
networks:
network_macvlan:
external: true
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
volumes:
- /jellyfin-config:/config
- /Series:/data/tvshows
- /Movies:/data/movies
ports:
- 8096:8096
networks:
network_macvlan:
ipv4_address: 192.168.1.20
restart: unless-stopped接下来,我使用docker-compose up -d jellyfin运行服务,并且我知道该服务正确地分配了IP地址,因为运行docker inspect network_macvlan显示:
"Containers": {
"adcf094a88fe4e70ece4fa8df7e3766605b0edb25da29563": {
"Name": "jellyfin",
"EndpointID": "77c533fcd084caf388c91dfe33d1abe8a1f9fb4ba099c10243be4b85e",
"MacAddress": "02:42:c0:a8:01:14",
"IPv4Address": "192.168.1.20/24",
"IPv6Address": ""
}
}, ...问题是我不能从LAN.上的其他客户端访问这个IP地址。
ping 192.168.1.20:显示Request timeout for icmp_seq我在这里错过了什么?
我还尝试在eth0.50上创建网络,而不是eth0作为官方文档中的集群桥实例,但没有解决这个问题。
发布于 2022-11-20 00:48:57
您是否尝试过将您的界面设置为混杂模式。使用:
ip link set eth1 promisc onhttps://stackoverflow.com/questions/72736186
复制相似问题