この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3344|答える: 1

[出典] .NET 8向けのDockerベースイメージの変更点

[リンクをコピー]
掲載地 2023/12/23 17:30:10 | | | |
.NET 8以前はコンテナはデフォルトでrootとして動作しており、.NET 8以降はすべてのLinuxコンテナイメージにrootユーザー以外のユーザーが含まれるようになっています。 rootユーザーでなくても、1行のコードで.NETコンテナをホストできます。 このプラットフォームレベルの変更により、アプリケーションはより安全になり、.NETは最も安全な開発者エコシステムの一つとなります。 これは小さな変更ですが、ディフェンス・イン・ディープに大きな影響を与えます。

DockerコンテナのUIDやGIDを理解する

デフォルトでは、コンテナ内のプロセスはrootユーザー権限で実行され、このrootユーザーはホストマシンのrootと同じユーザーです。 それは怖く聞こえますよね?なぜなら、コンテナ内のプロセスが適切なチャンスを得たら、ホストマシン上のすべてを制御できるからです!

参考:ハイパーリンクのログインが見えます。

.NET 8 Docker image

.NET 8 Dockerイメージには主に2つの変更点があります。

  • Imageは新しいアプリアカウントとグループを作成し、デフォルトでアプリアカウントでアプリを実行します
  • ポート8080に切り替えたところ、ポート80でした。ポート80は特権ポートなので、root権限が必要です(少なくとも場所によっては)。


.NET Docker イメージソースコードアドレス:ハイパーリンクのログインが見えます。

依存関係は以下の通りです:

aspnet:8.0-bookworm-slim -> dotnet/runtime-8.0.0-bookworm-slim-amd64 -> dotnet/runtime-deps-8.0.0-bookworm-slim-amd64 -> amd64/debian:bookworm-slim

dotnet/runtime-deps-8.0.0-bookworm-slim-amd64はこんな感じです:

以下に示すように:



アプリアカウントを使って基本画像を入力し、コマンドは以下の通りです:

以下の図に示すように、現在のユーザー変数と環境変数を出力します。



参考:ハイパーリンクのログインが見えます。

Dockerfile ファイル

プロジェクトをDockerイメージにパッケージ化する必要がある場合は、新しい.NET 8 Dockerコンテナサポートを作成する必要があり、Linux環境のデフォルトのDockerfileファイル構成は以下の通りです。

Dockerfileでシステムタイムゾーンを設定すると、以下のコードが表示されます。

許可拒否エラーは以下のように発生することがあります。

4>F:\itsvse\Dockerfile : error CTC1014: #21 [最終3/3] RUN inn -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime & echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : error CTC1014: #21 0.314 ln: symbolic link '/etc/localtime' の作成に失敗:権限拒否
4>F:\itsvse\Dockerfile : error CTC1014: #21 エラー: プロセス「/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone」が成功裏に完了しませんでした:終了コード: 1
4>F:\itsvse\Dockerfile : error CTC1014: ------
4>F:\itsvse\Dockerfile : error CTC1014: > [最終3/3] RUN in -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime & echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : error CTC1014: #21 0.314 ln: symbolic link '/etc/localtime' の作成に失敗:権限拒否
ルートアカウントでタイムゾーンを設定し、その後アプリアカウントに戻って以下のように変更します:

(終わり)





先の:.NET/C# でToLookupメソッドを収集するために
次に:PHPはすべてのヘッダー情報を取得します
 地主| 掲載地 2023/12/23 17:31:55 |
Dockerイメージレイヤーの解析には2つのツールが推奨されています
https://www.itsvse.com/thread-10063-1-1.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com