[解決済み] Dockerからaspnet coreが80番ポートで起動するのはなぜですか?
質問
TL;DRです。 なぜ aspnet コアアプリは、Docker イメージの中からポート 80 で実行されますが、Docker イメージの外からは 5000 で実行されるのでしょうか。
詳しく
私はここにあるaspnet core / dockerのチュートリアルを見てみました。 https://docs.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images
ページの途中から、規定通りに以下のようにアプリケーションを起動します。
dotnet run
とりわけ、これはこれを印刷する。
Now Listening on: http://localhost:5000
素晴らしい。期待通りです。チュートリアルの次は、Dockerイメージの中から全く同じアプリケーションを起動させるというものです。
docker build -t aspnetapp .
docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
この結果
Now listening on: http://[::]:80
待てよ。ワット? なぜ aspnet コアアプリはポート 80 で動作しているのでしょうか? 私がマシンから直接それを実行したとき、それはポート5000で実行されていました。設定ファイルの変更はありませんでした。
ベースとなるdockerイメージと関係があるのではないかと思っていますが、これを追跡できるほどdockerのスキルはまだありません。
どうすれば解決するのでしょうか?
この
microsoft/aspnetcore-build
コンテナの上に構築されます。
microsoft/aspnetcore
コンテナの上に構築されます。そのため
の dockerhub ページを参照してください。
にはこう書かれています。
ポートに関するメモ
この画像は、ASPNETCORE_URLS 環境変数を http://+:80 これは、たとえば Program.cs の app.UseUrl によってアプリケーションに明示的に URL を設定していない場合、アプリケーションはコンテナ内のポート 80 で待ち受けることを意味します。
つまり、これはコンテナが積極的にポートを80に設定しているのです。必要であれば、これを上書きすることができます。
Dockerfile
:
env aspnetcore_urls= http://+:5000
また、使用している docker コマンドのために、アプリケーションにアクセスするために、まだ
http://localhost:5000
にアクセスすることができます。
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerイメージの削除方法について教えてください。
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
-
[解決済み] Java 11のベースDockerイメージはなぜこんなに大きいのですか?(openjdk:11-jre-slim)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET 6の新しい設定オブジェクトConfigurationManagerの紹介
-
認証プロセスの記録にjwtを使用したネット
-
一時的なクラスを生成できない(result=1)、問題の解決方法
-
[解決済み] IISのAppPoolIdentityとファイルシステムの書き込みアクセス権
-
[解決済み】開発環境と本番環境で異なるWeb.configを使用する。
-
[解決済み】ASP.NET IdentityのIUserSecurityStampStore<TUser>インターフェースとは何ですか?
-
[解決済み] [Solved] ASP.NET MS11-100: 投稿されたフォームの値の最大数の制限を変更するにはどうしたらいいですか?
-
[解決済み] Visual StudioのApp_Dataフォルダは何に使うのですか?
-
[解決済み] Visual Studio 新しいブラウザを開けない
-
[解決済み] フォーム認証のタイムアウトとsessionStateのタイムアウトの比較