私は自分のネットワーク(ドッカーネットワークの外)でmDNSを閲覧し、mDNSで私のネットワーク(ドッカーネットワークの外)にアドバタイズできるubuntu 17.04ベースのドッカーコンテナを作成しようとしています。ドッカーのコンテナ内からmDNSを宣伝して閲覧するにはどうすればよいですか?
私の開発中のmacOSホストと本番用のLinux(Debian)ホストでこのドッカーコンテナを実行したいと考えています。
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"]
start.sh
#!/bin/bash
service avahi-daemon restart
service avahi-daemon status
avahi-browse -a
hosts: files mdns_minimal [NOTFOUND=return] dns
あなたはのavahi-デーモンが実行されて見ることができるように
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.conf
...
enable-dbus=no
...
、しかしavahi-browse
はそれがあるとは思いません。これはdbusを無効にしたためですか?
私のMacの17.04バーチャルボックスイメージの中で、同じコマンド(私はenable-dbus=yes
を残してください)を実行するだけで問題ありません。
更新:not do bridged networking on a macOSのように見えます。私は不可能なことをしようとしているのですか?私は現在、ドッキングウィンドウコンテナの内側と私の研究で働くのavahiを取得しようとしている
'--net = host'オプションは十分ではありませんか?これにより、コンテナはホストインタフェースにアクセスできます。 – Robert
Linux(私はコンテナ内で動作しています)にはavahi-daemonが必要です。AFAIKにはdbusが必要です。 https://github.com/ianblenke/docker-avahiは、ホストがLinuxの場合に動作するドッカー画像です。あなたのホストがmacOSの場合(dbusを使用しないので)はしません。それとも、これは間違った主張ですか? – rynop