我正在尝试创建一个基于 ubuntu 17.04 的 docker 容器,该容器可以浏览我的网络上的 mDNS(在 docker 网络之外)并在 mDNS 上向我的网络(在 docker 网络之外)做广告。
我希望能够在 macOS 主机(在我的开发过程中)和用于生产的 Linux(Debian)主机上运行这个 docker 容器。
https://github.com/ianblenke/docker-avahi似乎已经为 Linux 主机解决了这个问题(利用 avahi 守护程序并将 /var/run/dbus 卷映射到主机)。当我在我的 macbook 上开发时,我想使用 mDNSResponder。
如何创建一个可以在我的本地网络上做广告和浏览的容器,它也可以在我的 macOS 笔记本电脑和 Linux 服务器上运行?
这是我到目前为止所拥有的。
Dockerfile
FROM ubuntu:17.04
WORKDIR /app
RUN apt-get update && apt-get install -yq avahi-daemon avahi-utils libnss-mdns \
&& apt-get -qq -y autoclean \
&& apt-get -qq -y autoremove \
&& apt-get -qq -y clean
RUN update-rc.d avahi-daemon enable
COPY docker/etc/nsswitch.conf /etc/nsswitch.conf
COPY docker/etc/avahi-daemon.conf /etc/avahi/avahi-daemon.conf
COPY docker/start.sh /app
CMD ["/bin/bash","start.sh"]
启动.sh
#!/bin/bash
service avahi-daemon restart
service avahi-daemon status
avahi-browse -a
nsswitch.conf
hosts: files mdns_minimal [NOTFOUND=return] dns
avahi-daemon.conf
...
enable-dbus=no
...
跑步
docker run --net=host -it mdns1
* Restarting Avahi mDNS/DNS-SD Daemon avahi-daemon [ OK ]
Avahi mDNS/DNS-SD Daemon is running
Failed to create client object: Daemon not running
如您所见,avahi-daemon 正在运行,但avahi-browse
并不认为它在运行。这是因为我禁用了 dbus 吗?
enable-dbus=yes
在我的 mac 上的 17.04 virtualbox 映像中运行相同的命令(除了我保留),一切正常。
更新:看起来你不能在 macOS主机上进行桥接网络。那么我想做的事情是不可能的吗?