2016-10-19 4 views
0

私は公式のドッキングウィンドウhttpdのコンテナをダウンロードしたが、デフォルトで、それは私がコンテナを起動するたびに、それは私のポート80でリッスンすることを望む80のポートに私のポート32770をマップする - 任意のコマンドがある> 80ドッカーコンテナのパラメータを変更して起動する方法は?

ドッカーの起動時に引数を渡すか、ドッカーでこのマッピングをハードコーディングできますか?

"docker run"コマンドで実行しようとしましたが、新しいインスタンスが起動するたびに、私が使用したいドッカーコンテナに対して行った変更が失われます。どのようにポートマッピングの変更を保持できますか?

+0

'docker run'を実行するときに' -p 80:80'フラグを使ってポートを設定することができます。 – Thilo

+0

私に完全なコマンドラインを教えていただけますか?私はドッカーには初めてです – Farhan

+0

あなたは今使っているコマンドは何ですか? – Thilo

答えて

3

あなたはThilohttpd画像はまだあなたがそれを公開することができ、ポート80を公開して言うように、ホストへのコンテナからポートを公開したいです。

このコマンドマップポート80と、バックグラウンドでWebサーバーを実行します:

docker run -d -p 80:80 httpd 

今あなたがhttp://localhostに閲覧することができますし、参照「それは動作します!」ページ。

docker rundocker create + docker startのショートカットであるため、常にイメージから新しいコンテナを作成します。コンテナを変更して保存する場合は、commitまたはDockerfileを使用して、httpd(好ましくはDockerfile)に基づいて独自のイメージを作成します(管理と自動化が容易なため)。その後、あなたがそれを実行するときに常に同じになるカスタムWebサイトイメージがあります。

+0

イメージを変更する代わりに、頻繁な使用パターンとして、構成およびコンテンツを外部ボリューム(別のコンテナまたはホストファイルシステム)からコンテナにマウントする方法があります。そうすれば、httpdイメージをあなたのものとは別に更新することができます。どのアプローチが適切かは、要件と展開モデルによって異なります。 – Thilo

1

httpdの公式イメージに基づいて独自のドッカーイメージを作成する必要があります。次にマップしたいポートを公開してください(EXPOSE 80)https://docs.docker.com/engine/reference/builder/#/exposeあなたが望むようにする必要があります。

FROM httpd EXPOSE 80

ビルド:

それはのようなものを与えるドッキングウィンドウは、-tテストを構築します。

実行:ドッキングウィンドウの実行テスト:)

+1

それでも、ホストポートについては何もしません。実際、既存のHTTPDコンテナはこれをすでに実行している可能性があります。 – Thilo

関連する問題