首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过ip从网络上的另一个设备访问macvlan停靠容器。

无法通过ip从网络上的另一个设备访问macvlan停靠容器。
EN

Stack Overflow用户
提问于 2022-06-23 20:25:40
回答 1查看 527关注 0票数 0

我有一个码头集装箱,我想从局域网上的其他客户访问。我不想通过码头主机的IP访问它们,并将容器端口绑定到主机端口。我想通过它自己的IP地址访问这个容器,就像它是局域网上的一个独立的物理设备一样。

看来macvlan网络就是这样做的。我创建了一个像这样的macvlan网络:

代码语言:javascript
复制
 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文件中,我将刚刚创建的网络声明为外部,并创建服务:

代码语言:javascript
复制
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显示:

代码语言:javascript
复制
 "Containers": {
            "adcf094a88fe4e70ece4fa8df7e3766605b0edb25da29563": {
                "Name": "jellyfin",
               "EndpointID": "77c533fcd084caf388c91dfe33d1abe8a1f9fb4ba099c10243be4b85e",
                "MacAddress": "02:42:c0:a8:01:14",
                "IPv4Address": "192.168.1.20/24",
                "IPv6Address": ""
            }
        }, ...

问题是我不能从LAN.上的其他客户端访问这个IP地址。

  1. ping 192.168.1.20:显示Request timeout for icmp_seq
  2. MAC地址没有出现在路由器的网关web应用程序中

我在这里错过了什么?

我还尝试在eth0.50上创建网络,而不是eth0作为官方文档中的集群桥实例,但没有解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 00:48:57

您是否尝试过将您的界面设置为混杂模式。使用:

代码语言:javascript
复制
ip link set eth1 promisc on
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72736186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档