検索
ホームページ運用・保守DockerDocker イメージはどのような原則に従う必要がありますか?

Docker イメージが従うべき原則: 1. イメージ最小化の原則; 最も合理化された基本イメージを選択し、イメージ構築の中間生成物をクリーンアップし、イメージ層の数を減らす必要があります。 2. ビルド速度を最大化する原則: イメージを最大限に活用してキャッシュを構築し、構築されたキャッシュを使用してイメージのビルドを高速化します。 3. ネットワークリクエストの最適化に注意してください。

Docker イメージはどのような原則に従う必要がありますか?

このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

1. イメージを最適化する必要があるのはなぜですか?

Docker イメージを使用し続けると、プロセス中に注意を払って最適化しないと、イメージのサイズが大きくなってしまいます。ますます大きくなります
Docker を使用してアプリケーションをデプロイする場合、イメージのサイズが少なくとも 1G であることがよくわかります。
イメージのサイズの増加は、コストも増加するだけではありません。ディスク リソースとネットワーク リソースはもちろん、アプリケーションのデプロイメント効率にも影響します。アプリケーションのデプロイメント時間はますます長くなるでしょう。
したがって、デプロイメント効率を向上させ、コストを削減するには、デプロイメント イメージのサイズを削減する必要があります。リソースのオーバーヘッド
イメージの最適化については、dockerfile を最適化することで実現できます

2. イメージを構築するためのいくつかの原則

(1) イメージ最小化の原則

#最も効率的な基本イメージを選択します

イメージ サイズを効果的に削減するには、最小の基本イメージを選択します。例: alpine、busybox など。

イメージ構築の中間生成物をクリーンアップする

イメージの構築プロセス中、dockerfile 命令が実行されると、画像のファイルを削除する必要はありません。

yum を使用してコンポーネントをインストールする場合、最終的に yum clean all image を使用して不要なファイルをクリーンアップしたり、system rm コマンドを使用して不要なソース ファイルなどを削除したりできます。

画像のレイヤー数を減らす

画像は階層的に保存されたファイルであり、画像のレイヤー数にも一定の制限があります。画像のレイヤー番号が一番大きく、レイヤー 127 です。

注意しないと画像がどんどん肥大化してしまいます。

dockerfile を使用してイメージをビルドする場合、dockerfile 内の各命令によってレイヤーが生成されます。

したがって、マージ可能な命令をマージすることで、最終的に生成されるイメージのレイヤーの数を減らすことができます。 dockerfile内で。

例: RUN を使用して dockerfile 内のシェル コマンドを実行する場合、「&&」を使用して複数のコマンドを接続できます。

最も基本的なイメージを使用します

画像は小さいほど効率的です

(2) ビルド速度最大化の原則

画像を最大限に活用するビルド キャッシュ

使用できるビルド キャッシュは、イメージの構築を高速化するために使用されます。Docker ビルドでは、デフォルトでキャッシュが有効になります。キャッシュを有効にするには 3 つの重要なポイントがあります。

ミラーの親レイヤーは変更されておらず、ビルド手順も変更されておらず、追加されたファイルのチェックサムは一貫しています。

ビルド命令がこれら 3 つの条件を満たしている限り、イメージ構築のこの層は再度実行されず、前のビルドの結果が直接使用されます。

あるレイヤーの画像キャッシュが無効になると、それ以降の画像レイヤーのキャッシュも無効になります。

画像キャッシュを最大限に活用できるように、最も変更の少ない部分を Dockerfile の先頭に配置する必要があります。

dockerfile には、キャッシュの無効化を引き起こす可能性のあるコマンド WORKDIR、CMD、ENV、ADD などが含まれています。

これらのコマンドを dockerfile の最後に配置して、キャッシュを最大化することをお勧めします。イメージの構築プロセス中のキャッシュの使用。

ビルド ディレクトリ (デフォルト: Dockerfile が配置されているディレクトリ) 内の不要なファイルを削除します。

ビルド プロセス中に不要なファイルをフィルタリングするための .dockerignore ファイルを作成するか、別のディレクトリを作成します。ディレクトリ内には、イメージ構築プロセス中に必要なファイルのみが存在します。

Docker は、Docker エンジン (つまり、サーバー側のデーモン) と実行時のクライアント ツールに分かれています。

Docker のエンジンは、Docker Remote API と呼ばれる REST API のセットを提供します。

Docker コマンドなどのクライアント ツールは、この API セットを通じて Docker エンジンと対話し、さまざまな機能を実行します。

つまり、表面上はさまざまな docker 関数をローカルで実行しているように見えますが、実際にはすべてリモート呼び出しを使用してサーバー側 (Docker エンジン) で行われます。 docker build コマンドはイメージをビルドしますが、実際にはイメージはローカルにビルドされるのではなく、サーバー上、つまり Docker エンジン内にビルドされます。

イメージを構築するとき、Docker は最初にコンテキストを準備し、必要なすべてのファイルをプロセスに収集する必要があります。

デフォルトのコンテキストには、Dockerfile ディレクトリ内のすべてのファイルが含まれます。

(3) ネットワーク リクエストの最適化に注意する

いくつかのミラー ソースを使用する場合、または dockerfile でインターネット上の URL を使用する場合、

いくつかのソースを使用します。インターネット上で比較的優れたオープンソース サイトを使用すると、時間を節約し、失敗率を減らすことができます。

3. 仮想マシンでソース コードをシミュレートして nginx

选择最精简的基础镜像
减少镜像的层数
清理镜像构建的中间产物
注意优化网络请求
尽量去用构建缓存

Docker を開始します:

Docker イメージはどのような原則に従う必要がありますか?
画像を表示して削除してください 役に立たない画像:
Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?
まずソース コードから nginx をコンパイルします。手順に慣れたら、コンテナーで nginx を実行できます:

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
デバッグを閉じる:
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?#実行コマンドを表示
:
Docker イメージはどのような原則に従う必要がありますか?4. イメージの最適化

イメージのフェーズ構築 次に、rhel7 イメージを使用してコンテナを構築し、コンテナに nginx ソース コード パッケージをインストールします。このコンテナを使用して新しいイメージを構築し、それを最適化します

(1) 2 つのパッケージを実マシンのserver1 に渡します


Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?最適化のアイデア: RUN を 1 行に記述してミラー層の数を減らす
:Dockerfile を次のように記述します

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?

##最適化のアイデア: 複数段階のビルドを使用する Docker イメージはどのような原則に従う必要がありますか?:
Dokcerfile 次のように: 最初にコマンド ラインをシミュレートしてデバッグをオフにします:



Docker イメージはどのような原則に従う必要がありますか?

Docker イメージはどのような原則に従う必要がありますか?

##最適化のアイデア: 最適化最下層から

Docker イメージはどのような原則に従う必要がありますか?

首先我们需要导入一个distroless和nginx镜像
distroless”镜像只包含应用程序及其运行时依赖项,不包含程序包管理器、shell以及在标准Linux发行版中可以找到的任何其他程序
用distroless去除容器中所有不必要的东西

1)从github网站查看例子:
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
(2)从真机给server1发送东西
Docker イメージはどのような原則に従う必要がありますか?
(3)导入镜像

Docker イメージはどのような原則に従う必要がありますか?

(4)编写Dockerfile如下
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
(5)构建镜像并查看镜像大小

Docker イメージはどのような原則に従う必要がありますか?
(6)构建容器并测试
Docker イメージはどのような原則に従う必要がありますか?
查看IP并能正常访问到Nginx默认发布页,证明容器镜像可以正常使用,但只要内网可以访问:

Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
按照查看桥接的工具:
Docker イメージはどのような原則に従う必要がありますか?
Docker イメージはどのような原則に従う必要がありますか?
查看桥接:
Docker イメージはどのような原則に従う必要がありますか?
做端口映射Docker イメージはどのような原則に従う必要がありますか?
可以通过外网访问了:
Docker イメージはどのような原則に従う必要がありますか?

推荐学习:《docker视频教程

以上がDocker イメージはどのような原則に従う必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Docker監視:メトリックの収集とコンテナの健康の追跡Docker監視:メトリックの収集とコンテナの健康の追跡Apr 10, 2025 am 09:39 AM

Docker監視の中核は、主にCPUの使用、メモリ使用、ネットワークトラフィック、ディスクI/Oなどのインジケーターを含む、コンテナの動作データを収集および分析することです。 Prometheus、Grafana、Cadvisorなどのツールを使用することにより、コンテナの包括的な監視とパフォーマンスの最適化を実現できます。

Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Docker Swarm:スケーラブルで回復力のあるコンテナクラスターの構築Apr 09, 2025 am 12:11 AM

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。

Kubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションKubernetesを備えたDocker:エンタープライズアプリケーション用のコンテナオーケストレーションApr 08, 2025 am 12:07 AM

DockerとKubernetesを使用して、エンタープライズアプリケーションのコンテナオーケストレーションを実行する方法は?次の手順で実装します。Dockerイメージを作成し、DockerHubにプッシュします。 Kubernetesで展開とサービスを作成して、アプリケーションを展開します。 Ingressを使用して外部アクセスを管理します。パフォーマンスの最適化と、マルチステージの構築やリソースの制約などのベストプラクティスを適用します。

Dockerのトラブルシューティング:一般的な問題の診断と解決Dockerのトラブルシューティング:一般的な問題の診断と解決Apr 07, 2025 am 12:15 AM

Docker FAQは、次の手順で診断および解決できます。1。コンテナのステータスとログを表示、2。ネットワーク構成を確認します。これらの方法により、Dockerの問題を迅速に配置して固定し、システムの安定性とパフォーマンスを向上させることができます。

Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエースDockerインタビューの質問:DevOpsエンジニアリングインタビューをエースApr 06, 2025 am 12:01 AM

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerセキュリティ硬化:容量から容器を保護しますDockerセキュリティ硬化:容量から容器を保護しますApr 05, 2025 am 12:08 AM

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。

Dockerボリューム:コンテナ内の永続的なデータの管理Dockerボリューム:コンテナ内の永続的なデータの管理Apr 04, 2025 am 12:19 AM

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワーク高度なDockerネットワーキング:マスタリングブリッジ、ホスト&オーバーレイネットワークApr 03, 2025 am 12:06 AM

Dockerは、ブリッジネットワーク、ホストネットワーク、オーバーレイネットワークの3つのメインネットワークモードを提供します。 1.ブリッジネットワークは、単一のホストでのコンテナー間通信に適しており、仮想ブリッジを介して実装されています。 2。ホストネットワークは、高性能ネットワークが必要なシナリオに適しており、コンテナはホストのネットワークスタックを直接使用します。 3.オーバーレイネットワークは、マルチホストDockerswarmクラスターに適しており、仮想ネットワークレイヤーを介してクロスホスト通信が実現されます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません