目次
Docker はコンテナではありません
ホームページ 運用・保守 Docker docker はコンテナですか?

docker はコンテナですか?

Jun 17, 2022 am 10:32 AM
docker

Docker はコンテナではありません。コンテナは、開発、配布、デプロイメントのためにコードとすべての依存ソフトウェアをパッケージ化するための標準単位であり、アプリケーションをある環境から別の環境へ迅速かつ確実に実行できるようにします。は、コンテナ テクノロジの実装であり、コンテナの管理に使用されるオープン ソース アプリケーション コンテナ エンジンです。

docker はコンテナですか?

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

Docker はコンテナではありません

Docker とコンテナの関係

さて、コンテナというと、最初に思い浮かぶのは Docker ですが、コンテナは Docker と同じではありません。Docker はコンテナ テクノロジの実装にすぎず、VMware が仮想マシンの実装であるのと同じように、コンテナの管理に使用されます。 Docker の他に、 LXC/LXD 、 rkt 、その他のコンテナー技術の実装もありますが、Docker が最も有名です。

コンテナとは

Docker公式のコンテナの説明を一言で言うと、コンテナ(Container)とはソフトウェアを標準化された単位にパッケージ化したものです。 . 開発、配信、展開のため。コンテナは、コードとそれに依存するすべてのソフトウェアをパッケージ化するための標準ユニットであり、アプリケーションをある環境から別の環境へ迅速かつ確実に実行できるようにします。コンテナー イメージは、コード、ランタイム環境、システム ツール、システム ライブラリ、設定など、ソフトウェアの実行に必要なすべてが含まれる軽量の実行可能な独立したソフトウェア パッケージです。コンテナ化されたソフトウェアは Linux および Windows ベースのアプリケーションで利用でき、どのような環境でも一貫して実行されます。コンテナーはソフトウェアに独立性を与え、ソフトウェアをその環境から分離し、開発環境やステージング環境などの異なる環境間でソフトウェアが均一に実行されるようにします。

コンテナは、アプリケーション (コンパイル済み) コードと実行時に必要な依存関係をパッケージ化するために使用されるテクノロジでもあります。各コンテナーの実行は繰り返すことができ、依存関係を含めることによる標準化により、コンテナーを実行するどの環境でも同じ動作が得られます。コンテナーはアプリケーションをホスト インフラストラクチャから分離し、異なるクラウドおよびオペレーティング システム環境間での展開を容易にします。コンテナーは不変であり、実行中のコンテナーのコードは変更できません。コンテナ化されたアプリケーションを変更する必要がある場合は、変更を含む新しいコンテナを構築し、更新されたイメージからコンテナを再作成する必要があります。

コンテナ テクノロジは基本的にシステム リソースを分離して制御し、コンテナ プロセスが独自の独立した名前空間で実行できるようにします。コンテナは独自のファイル システム、ネットワーク構成、プロセス スペースなどを持つことができ、コンテナ内のプロセスは隔離された環境で実行されます。これはホストから独立したシステム内で動作しているようなものであり、コンテナは非常に便利です。どこでも実行できます。 。

コンテナの利点

コンテナの主な利点は次のように要約されます:

  • 使いやすく効率的: 比較仮想マシン イメージを使用すると、コンテナ イメージが使いやすく、より効率的になります。コンテナーはサイズが小さく、起動が速く、外部のインフラストラクチャ環境に束縛される必要がないため、開発環境から実稼働環境までの一貫性の問題を完全に解決します。

  • 監視と管理: コンテナーは仮想マシンよりも透過的であり、監視と管理が容易です。特に、コンテナ プロセスのライフ サイクルは、プロセス マネージャーによってコンテナ内に隠蔽されるのではなく、インフラストラクチャによって管理されます。最後に、各アプリケーションはコンテナーにパッケージ化され、コンテナーのデプロイメントの管理はアプリケーションのデプロイメントの管理と同等です。

  • 継続的な統合と展開: コンテナーは環境の違いを排除し、アプリケーションのライフサイクル環境の一貫性と標準化を保証します。開発者はイメージを使用して標準開発環境を構築します。開発が完了すると、完全な環境とアプリケーション イメージがパッケージ化されます。テストおよび運用担当者は、テストとリリースのためにイメージを直接展開できるため、継続的な統合、テスト、リリースのプロセスが簡素化されます。

  • 環境の標準化とバージョン管理: コンテナーによって提供される環境の一貫性と標準化に基づいて、コンテナー イメージのバージョン管理が可能です。つまり、オペレーティング環境全体のバージョン管理が可能です。信頼性が高く、頻繁にコンテナ イメージの構築、展開、ロールバックを迅速かつ簡単に提供します。

  • 効率的なリソースの利用と分離: コンテナにはハイパーバイザーによる追加のオーバーヘッドがなく、オペレーティング システムを基礎となるレイヤーと共有します。優れたパフォーマンスと低いシステム負荷を備え、より多くのアプリケーション インスタンスを実行できます。システムリソースを最大限に活用してください。コンテナーは優れたリソース分離機能と制御機能も備えており、アプリケーションが相互に影響を及ぼさないようにシステム リソースを正確に割り当てることができます。

  • Observable: オペレーティング システムからだけでなく、アプリケーション自体からの情報やメトリクスも表示します。

  • クラウドと OS ディストリビューションのポータビリティ: Ubuntu、RHEL、CoreOS、物理マシン、GKE などのあらゆる場所で実行できます。

  • アプリケーション中心: 従来のハードウェアへのオペレーティング システムの展開から、オペレーティング システムへのアプリケーションの展開まで。

  • 疎結合、分散、弾力性のあるマイクロサービス: アプリケーションはより小さく独立したモジュールに分割され、専用デバイス上で大きな単一プログラムを実行するのではなく、動的に管理および展開できます。

Docker とは

Docker は、間違いなく、多くのコンテナ テクノロジのリーダーです。Docker とは何かについては、次の点で要約できます:

Docker は、オープン ソースのコンテナ プロジェクトです。コードは GitHub で維持されており、次のとおりです。 Apache 2.0 プロトコルは Linux Foundation に参加しており、主流のオペレーティング システムとクラウド サービス プロバイダーによってサポートされており、Open Container Alliance (OCI) を設立して推進しています。

Docker は開発と実装に Google の Go 言語を使用しており、Linux カーネルの名前空間 (namespace)、コントロール グループ (cgroup)、および OverlayFS クラスの Union FS に基づいて、プロセスをカプセル化および分離し、オペレーティング システムに属します。システム、仮想化テクノロジーのレベル。分離プロセスはホストや他の分離プロセスから独立しているため、コンテナとも呼ばれます。

Docker はもともと Linux コンテナ (LXC) に基づいて実装されていましたが、後に LXC を独自に開発した libcontainer に置き換え、さらに runc とcontainerd を使用するように進化しました。

Docker は、コンテナ内にアプリケーションを迅速かつ自動的にデプロイできる、効率的で俊敏かつ軽量のコンテナ ソリューションを提供します。オペレーティング システムのカーネル テクノロジを通じてコン​​テナにリソースの分離とセキュリティを提供し、コンテナの作成と保守とサポートを大幅に簡素化します。オンプレミス環境と複数のクラウド プラットフォームへの展開。言い換えれば、Docker はアプリケーションの開発、実行、デプロイメントのためのワンストップ ソリューションを提供します。

runc は、OCI コンテナー ランタイム仕様に従ってコンテナーを作成および実行するために使用される Linux コマンド ライン ツールです。

containerd は、コンテナーのライフサイクルを管理し、コンテナーを実行し、ノード上でイメージを管理するための最小限の機能セットを提供するデーモンです。

Docker の利点

新興の仮想化手法である Docker には、従来の仮想化手法と比較して多くの利点があります。

  • システム リソースのより効率的な使用: コンテナーは、ハードウェアの仮想化や完全なオペレーティング システムの実行などの追加のオーバーヘッドを必要としません。Docker の使用率は高くなります。システム リソースと要求が高くなりますが、小さいほどパフォーマンスが高くなります。同じ構成のホストでは、仮想マシンよりもコンテナを使用して多数のアプリケーションを実行できます。

  • 起動時間の短縮: Docker コンテナ アプリケーションの起動時間は数秒、さらにはミリ秒を達成できます。これにより、開発、テスト、展開にかかる時間を大幅に節約できます。

  • 一貫した実行環境: Docker イメージは、カーネルを除く完全な実行環境を提供し、アプリケーション実行環境の一貫性を確保するため、同じコードが別の環境で失われることがなくなります。 . このタイプの問題を実行します。

  • 継続的デリバリーとデプロイメント: Docker を使用すると、アプリケーション イメージをカスタマイズすることで、継続的インテグレーション、継続的デリバリー、およびデプロイメントを実現できます。開発者は Dockerfile を通じてイメージを構築し、継続的統合システムとの統合テストを実行します。運用および保守担当者は、イメージを実稼働環境に直接迅速にデプロイしたり、自動デプロイメントのために継続的デプロイメント システムと組み合わせて使用​​したりすることもできます。

  • 移行の容易化: Docker は実行環境の一貫性を保証し、実行環境の変更によってアプリケーションが適切に実行されなくなることを心配することなく、異なるプラットフォーム間でアプリケーションを簡単に移行できるようにします。 。

  • メンテナンスと拡張の容易化: Docker で使用される階層化されたストレージとミラーリング テクノロジにより、アプリケーションの繰り返し部分の再利用が容易になり、アプリケーションのメンテナンスと更新も簡単になります。基本イメージに基づいてイメージをさらに拡張することも非常に簡単です。また、Docker は高品質の公式イメージを多数維持しており、アプリケーション サービスのイメージ作成コストをさらに削減します。

  • 優れた分離: Docker は、コンテナーに信頼性の高いリソース分離とセキュリティ保証を提供し、コンテナーがシステム リソースを正確に割り当て、アプリケーションが相互に影響を与えないようにすることができます。

  • 柔軟なスケーリング: サーバー使用量の集中的なバーストの処理とアプリケーションの動的管理に優れています。

推奨学習: 「docker ビデオ チュートリアル

以上がdocker はコンテナですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 分散システムのアーキテクチャと実践 PHP 分散システムのアーキテクチャと実践 May 04, 2024 am 10:33 AM

PHP 分散システム アーキテクチャは、ネットワークに接続されたマシン全体にさまざまなコンポーネントを分散することで、スケーラビリティ、パフォーマンス、およびフォールト トレランスを実現します。このアーキテクチャには、アプリケーション サーバー、メッセージ キュー、データベース、キャッシュ、ロード バランサーが含まれます。 PHP アプリケーションを分散アーキテクチャに移行する手順は次のとおりです。 サービス境界の特定 メッセージ キュー システムの選択 マイクロサービス フレームワークの採用 コンテナ管理への展開 サービスの検出

PHPマイクロサービスコンテナ化のアジャイル開発と運用 PHPマイクロサービスコンテナ化のアジャイル開発と運用 May 08, 2024 pm 02:21 PM

回答: PHP マイクロサービスは、アジャイル開発のために HelmCharts でデプロイされ、分離とスケーラビリティのために DockerContainer でコンテナ化されます。詳細説明: HelmCharts を使用して PHP マイクロサービスを自動的にデプロイし、アジャイル開発を実現します。 Docker イメージを使用すると、マイクロサービスの迅速な反復とバージョン管理が可能になります。 DockerContainer 標準はマイクロサービスを分離し、Kubernetes がコンテナの可用性とスケーラビリティを管理します。 Prometheus と Grafana を使用して、マイクロサービスのパフォーマンスと健全性を監視し、アラームと自動修復メカニズムを作成します。

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

コンテナ化を通じて Java 関数のパフォーマンスを最適化するにはどうすればよいですか? コンテナ化を通じて Java 関数のパフォーマンスを最適化するにはどうすればよいですか? Apr 29, 2024 pm 03:09 PM

コンテナ化により、次の方法で Java 関数のパフォーマンスが向上します。 リソースの分離 - 分離されたコンピューティング環境を確保し、リソースの競合を回避します。軽量 - 消費するシステム リソースが少なくなり、実行時のパフォーマンスが向上します。高速起動 - 関数の実行遅延を軽減します。一貫性 - アプリケーションとインフラストラクチャを分離して、環境全体で一貫した動作を保証します。

PHP CI/CD を使用して迅速に反復するにはどうすればよいですか? PHP CI/CD を使用して迅速に反復するにはどうすればよいですか? May 08, 2024 pm 10:15 PM

回答: PHPCI/CD を使用して、CI/CD パイプラインの設定、自動化されたテストおよび展開プロセスなどの迅速な反復を実現します。 CI/CD パイプラインのセットアップ: CI/CD ツールを選択し、コード リポジトリを構成し、ビルド パイプラインを定義します。自動テスト: 単体テストと統合テストを作成し、テスト フレームワークを使用してテストを簡素化します。実際のケース: TravisCI の使用: TravisCI をインストールし、パイプラインを定義し、パイプラインを有効にして、結果を表示します。継続的デリバリーを実装します。展開ツールを選択し、展開パイプラインを定義し、展開を自動化します。利点: 開発効率が向上し、エラーが減少し、納期が短縮されます。

Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Jun 05, 2024 pm 08:29 PM

Docker コンテナを使用した Java EE アプリケーションのデプロイ: Dockerfile を作成してイメージを定義し、イメージを構築し、コンテナを実行してポートをマップし、ブラウザでアプリケーションにアクセスします。サンプル JavaEE アプリケーション: REST API はデータベースと対話し、Docker 経由でデプロイ後にローカルホストでアクセスできます。

vscode に Docker 拡張機能をインストールする方法 vscode に Docker 拡張機能をインストールする手順 vscode に Docker 拡張機能をインストールする方法 vscode に Docker 拡張機能をインストールする手順 May 09, 2024 pm 03:25 PM

1. まず、インターフェイスを開いた後、左側の拡張機能アイコン ボタンをクリックします。 2. 次に、開いた拡張機能ページで検索バーの場所を見つけます。 3. 次に、マウスで「Docker」という単語を入力して拡張機能プラグインを見つけます。 4最後に、対象のプラグインを選択して右をクリックし、下隅にあるインストールボタンをクリックします。

See all articles