2016-03-21 5 views
1

を使用して、コンテナをドッキングウィンドウするブラウジングは、私は私のUbuntuマシン上Dockerコンテナを開始し、次のコマンドを使用して、その80ポートへのすべての8080ポートを転送:ドッカー - そのIP

sudo docker run -d -p 8080:80 -v /var/www/html/work:/var/www my_server --name "server" 

私が取得するには、次のコマンドを使用しました私のコンテナのIP:

sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' server 

と受信:

172.17.0.33 

私は/var/www/html/work/phpinfo.php

phpinfo()コマンドを使用して、PHPファイルを持っていますが、172.17.0.33:8080/phpinfo.phpに閲覧したとき、私はそれがサーバーに接続できないと言って、ブラウザ上でエラーが表示されます。

私の根性

は私がコンテナを参照するために、 docker-machineデフォルトのIPを使用OSXで

..私はちょうど方法がわからない、何とか世界へのコンテナのIPを公開する必要がありますが、私に指示しますUbuntuで私はドッカーマシンを持っていません

これを行う正しい方法は何ですか?

+0

ローカルホストのIPスタックにこのポートを公開したので、 '172.17.0.33:80'ではなく' ip-host:8080'に接続してください。 – Auzias

答えて

2

をご覧ください。

しかし、あなたはホストポート、そしてあなたがポート80を使用することになり、8088

をコンテナIPがドッキングウィンドウデーモンによって管理していない使用している場合は、「Network configuration」も参照してください:

Dockerが起動すると、ホストマシンにdocker0という名前の仮想インターフェイスが作成されます。ホストマシンで使用されていないRFC 1918で定義されているプラ​​イベート範囲からランダムにアドレスとサブネットを選択し、docker0に割り当てます。
Dockerは数分前に起動したときに172.17.42.1/16を選択しました。たとえば、ホストマシンとそのコンテナに65,534のアドレスを提供する16ビットのネットマスクです。

しかし、docker0は普通のインターフェースではありません。 仮想イーサネットブリッジは、接続されている他のネットワークインターフェイス間でパケットを自動的に転送します。
これにより、コンテナはホストマシンと互いに通信します。

ホストは、コンテナ自体ではなく、公開されているものにのみアクセスできるようにすることをお勧めします。

0

Ubuntuでdockerを実行する場合は、Ubuntuサーバーのipを使用してサイトにアクセスしてください。 8080、またはホストのパブリックIP:あなたがUbuntuのサーバでブラウザを実行すると

は、ちょうどあなたがあなたのホストはlocalhostを使用してサーバに接続することができるはず http://localhost:8080/phpinfo.php

関連する問題