検索
ホームページ運用・保守Dockerdocker はコンテナですか?

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 までご連絡ください。
DockerとKubernetes:技術的なディープダイブDockerとKubernetes:技術的なディープダイブApr 15, 2025 am 12:02 AM

DockerとKubernetesは、最新のソフトウェア開発と展開のための重要なツールです。 Dockerは、コンテナ化を通じてアプリケーションのパッケージと展開を簡素化しますが、Kubernetesは大規模なコンテナオーケストレーションと管理に使用されます。 DockerとKubernetesを使用すると、アプリケーションのスケーラビリティと管理効率を大幅に改善できます。

Dockerの原則の詳細な説明Dockerの原則の詳細な説明Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Linuxコンテナ:Dockerの基礎Linuxコンテナ:Dockerの基礎Apr 14, 2025 am 12:14 AM

LXCはDockerの基礎であり、Linuxカーネルのcgroupと名前空間を通じてリソースと環境の隔離を実現します。 1)リソースの分離:CGROUPSは、CPU、メモリ、その他のリソースを制限します。 2)環境分離:名前空間は、独立したプロセス、ネットワーク、およびファイルシステムビューを提供します。

LinuxのDocker:ベストプラクティスとヒントLinuxのDocker:ベストプラクティスとヒントApr 13, 2025 am 12:15 AM

LinuxでDockerを使用するためのベストプラクティスには以下が含まれます。1。ドッケルンコマンドを使用してコンテナを作成および実行します。2。DockerComposeを使用してマルチコンテナーアプリケーションを管理します。3。定期的にクリーニングされていない画像とコンテナ、4。画像サイズを最適化して使用します。これらのプラクティスは、ユーザーがDockerを効率的に使用し、一般的な問題を回避し、コンテナ化されたアプリケーションを最適化するのに役立ちます。

LinuxでDockerを使用:包括的なガイドLinuxでDockerを使用:包括的なガイドApr 12, 2025 am 12:07 AM

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

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を使用して外部アクセスを管理します。パフォーマンスの最適化と、マルチステージの構築やリソースの制約などのベストプラクティスを適用します。

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

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール