web-dev-qa-db-ja.com

Dockerコンテナへのポートを開く

私はdockerから始めて、WebアプリケーションでDockerコンテナーを実行しようとし、ローカルネットワークでそれを確認しようとしています。

追加のサービス(GUI、LAMP、OpenSSHなど)なしでVirtualBoxに新しいUbuntu 14 LTSをインストールし、Dockerのみをインストールしました。

curl -sSL https://get.docker.com/ | sh

odoo(OpenERP)コンテナを実行しました(以前はpostgreeコンテナを実行していました)

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres
docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -t odoo

とてもシンプルです。動作しているようです。ブラウザをインストールしていませんが、telnet経由で127.0.0.1:8069に接続し、GETリクエストを送信しました。答えました。

次に、外部からサービスにアクセスする必要があります。どうやって?

  • VirtualBoxネットワークインターフェースはブリッジとして構成されています。

  • Ubuntu eth0インターフェースに固定IP(192.168.0.150)を設定しました。

  • UFWが無効になっています

  • 他のコンピューターから192.168.0.150にpingを実行すると、ubuntuが応答します。

  • しかし、ブラウザは192.168.0.150:8069で何も検出しません

  • Telnet経由で192.168.0.150:8069に接続できません

ポートリダイレクションまたはインターフェイスマッピングの設定である必要があると思います。私を手伝ってくれますか? :)

1
Kaikus

ついに私は答えを見つけました。問題はポートの割り当てでした。設定した場合:

-p 127.0.0.1:8069:8069

ローカルホストのみを公開しています。これは、ローカルサービスのみが必要で、サーバーからのみアクセスする場合に最適なセキュリティオプションです。ただし、ポートをすべてのインターフェイスに公開する場合は、次のように入力します。

-p 8069:8069

次に、eth0インターフェイスを介してネットワーク経由でサービスにアクセスできます:)

3
Kaikus