今日はDockerシリーズを始めます。このトピックでは、Docker の基本的な使い方、基本的なコマンド、Dockerfile、および .NET プロジェクトに基づく Docker ストレージとネットワークについて紹介し、説明します。 1. なぜ Docker を学ぶ必要があるのでしょうか?ここ数年でコンテナ技術は急速に発展し、普及してきました。このような状況において、開発者にとってコンテナ技術は必須の基本スキルの 1 つであると言えます。 Docker は現在、コンテナ テクノロジーの最も人気のある実装です。 最も人気のある DevOps プラットフォームである Kubernetes (K8s) は Dockershim (Docker を K8s のコンテナ ランタイムとして使用できるようにするアダプタ コンポーネント) を廃止しましたが、これは K8s で Docker コンテナを実行できないことを意味するものではありません。 Dockershim は今後もコミュニティや公式によってメンテナンスされ続けることは間違いありませんし、将来的には Docker が CRI 仕様をサポートしてアダプタ コンポーネントの助けを借りずに K8s で実行できるようになる可能性もありますので、今のところはまったく心配する必要はありません。 Docker は市場で依然として非常に人気があり、実際の環境でも Docker を直接使用する方が適しているシナリオがまだ多くあります。 また、個人的には、Docker を学習した後で K8s を学習すると、はるかに簡単になり、多くの概念がそれほど抽象的ではなくなると感じています。 2. コンテナとは何か名前が示すように、コンテナは IT の世界で標準化された「コンテナ」です。運輸業界では、船や電車で輸送するさまざまな商品を分離するために物理的なコンテナを使用しているのと同様に、ソフトウェア開発技術でもこのコンテナ化されたアプローチが使用されています。 最も古いコンテナ技術は、Linux Container (略して LXC) と呼ばれるツールであり、カーネルの軽量オペレーティング システム層における仮想化技術です。 Linux コンテナの実装には、主に Namespace と Cgroup という 2 つの基本テクノロジが含まれます。前者は主にリソースの分離に使用される名前空間であり、後者は CPU およびメモリの制限、プロセス グループの停止、回復、優先度制御などのリソースの管理と制御を担当します。 仮想化技術の発展に伴い、LXC システム層コンテナ技術をベースに、Docker などのアプリケーション層コンテナ技術が誕生しました。オペレーティングシステム上で実行されるアプリケーションです。このアプリケーションでは、デプロイする必要があるアプリケーションをコンテナ化して、各アプリケーションを分離されたコンテナ内で実行できるようにすることができます。 コンテナの主な利点は、標準化、軽量、持ち運びの容易さ、低コストです。コンテナ テクノロジーは軽量の固定インフラストラクチャを提供するため、ハードウェアを構成する必要がなくなり、展開をホストするためにオペレーティング システムやソフトウェアをインストールする時間を費やす必要もありません。アプリケーション コードを、関連する構成ファイル、ライブラリ、およびアプリケーションを実行するために必要なすべてのものと非常に標準化された方法で組み合わせてパッケージ化できます。これにより、開発者や運用担当者は環境間でアプリケーションをスムーズに展開できるようになり、異なる環境でアプリケーションを正しく実行できないという問題が解決されます。コンテナは互いに分離されているため、アプリケーションのセキュリティが向上します。 3. Dockerとは何か前述したように、Docker はコンテナ テクノロジの実装です。 Docker は、コンテナを開発、配信、実行するためのコンテナ化プラットフォームです。 Docker for desktop は、Linux、Windows、macOS をサポートしています。サーバー環境の場合、Docker は複数の Linux ディストリビューションと Windows Server 2016 以降をサポートします。多くのクラウド サービス プロバイダー (Alibaba Cloud、Azure など) が Docker をサポートしています。 Docker は C/S (クライアント/サーバー) アーキテクチャを使用します。 Docker クライアントは、Docker コンテナの構築、実行、配布を担当する Docker デーモンと通信します。 Docker クライアントとデーモンは同じシステム上で実行できます。また、REST API を使用して通信するリモート Docker デーモンに Docker クライアントを接続することもできます。もう 1 つの Docker クライアントは Docker Compose です。これを使用すると、一連のコンテナーで構成されたアプリケーションを操作できます。 Docker クライアントは、Docker サーバーと対話するためのコマンドライン インターフェイス (CLI) を提供する、docker と呼ばれるコマンドライン アプリケーションです。 docker コマンドは、REST API インターフェイスを使用して、docker run などの命令をローカル サーバーまたはリモート サーバーに送信し、コンテナーを管理します。 Docker クライアントは複数のデーモンと通信できます。 Docker サーバー内のデーモン (dockerd という名前) は、Docker API リクエストをリッスンし、イメージ、コンテナー、ネットワーク、プラグインなどの Docker オブジェクトを管理します。デーモンは他のデーモンと通信して Docker サービスを管理することもできます。 Docker イメージ リポジトリは、Software as a Service (SaaS) Docker コンテナー レジストリです。 Docker イメージ リポジトリは、作成されたコンテナ イメージを保存および配布するために使用されます。 Docker Hub は、Docker イメージ管理用のデフォルトのパブリック リポジトリです。 4. 結論この記事では主にコンテナとは何か、Dockerとは何かについて紹介します。コンテナ テクノロジーと Docker について、すでに基本的な理解をお持ちだと思います。 |
<<: Kubernetes ソフトウェア サプライ チェーンのセキュリティ保護
>>: 注目すべきオープンソースのクラウドネイティブツール7つ
Grand View Research が発表した新しいレポートによると、大量のデータ転送に関連する...
ハイブリッド クラウド移行戦略を通じて、企業は社内のワークロードを外部環境に拡張できます。独自の I...
1. 準備知識のポイントKubernetes のバージョンアップグレードは非常に高速で、3 か月ごと...
ウェブサイトの中期におけるロングテールキーワードの運用は、私たちがやらなければならないことです。トラ...
AWS は本日、グローバル テクノロジー サミット (上海) において、教育テクノロジー スタートア...
インターネットの急速な発展に伴い、伝統的な企業は自社の企業にとってのインターネットの重要性にますます...
当社の SEO の主な目的は、検索エンジンから指定されたキーワードのトラフィックを獲得し、目標を達成...
Sugarhosts も有名なホスティング会社です。まず最初に知っておきたいのは、同社の仮想ホストで...
この記事では、JVM メモリ モデル、クラス ローダー、GC 回復アルゴリズム、GC コレクターなど...
画像出典: Tuchong Creative弱肉強食とは、自然界における適者生存と弱者の餌食となる生...
SEO最適化技術の品質は、コンテンツと外部リンクだけでなく、いくつかの詳細の処理にも左右されます。コ...
クラウド コンピューティングの変革の瞬間が到来しました。それは、成熟した市場構造、広い将来の空間、テ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています携帯電話の...
chicagovps から特別プロモーション付きの openvz vps が 2 つメールで送られて...
私はSEOに半年以上関わってきました。時間的にはまだ新参者かもしれませんが、多くの記事を読み、多くの...