2017-05-19 5 views
3

私は自分のネットワーク(ドッカーネットワークの外)で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

のnsswitch.conf

あなたはの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を取得しようとしている

+0

'--net = host'オプションは十分ではありませんか?これにより、コンテナはホストインタフェースにアクセスできます。 – Robert

+0

Linux(私はコンテナ内で動作しています)にはavahi-daemonが必要です。AFAIKにはdbusが必要です。 https://github.com/ianblenke/docker-avahiは、ホストがLinuxの場合に動作するドッカー画像です。あなたのホストがmacOSの場合(dbusを使用しないので)はしません。それとも、これは間違った主張ですか? – rynop

答えて

0

はこの出くわした:それは がそれを使用することはありませんAvahiは設定の設定を無効にdbusの中

することができますので。その後、DockerでAvahiを実行するときには、 --no-rlimitsフラグを渡す必要があり、コンテナのセキュリティを損なうことなく動作します。

https://www.reddit.com/r/docker/comments/54ufz2/is_there_any_way_to_run_avahi_in_docker_without/

うまくいけば、これはあなたの状況を支援することができます。

+0

これを試しました。オプションは 'enable-dbus = no'です。まだ動作しません。私はmacOSホストにいます。なぜ私は '--no-rlimits'を使わなければならないと言いますか?あなたは知っていますか?それが問題の原因になるようです。 – rynop

関連する問題