今日は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つ
カンファレンスでは SEO 担当者とウェブマスター向けにいくつかのヒントを紹介します。たとえば、Go...
今日、グループ内の多くの人から強く勧められているサイトを見つけたので、見ずにはいられませんでした。あ...
各 SEOER には独自の最適化方法があり、異なるターゲット グループを対象としています。検索エンジ...
今日は、百度の関連キーワードについての私の個人的な推測についてお話しします。百度の宣伝広告やインター...
パブリック クラウドに多額の投資をする企業が増えており、AWS パブリック クラウドとの差を縮めるた...
セキュリティ上の理由から、銀行機関は従来、業務を運営するために自社のデータセンターに IT 機器を導...
Baidu ウェブマスター プラットフォームの学生は、ウェブマスターとコミュニケーションを取る際に、...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますオリジナル...
国内ユーザーが海外のVPSをレンタルする場合、どのように選択すればよいでしょうか?海外VPSレンタル...
ここ 2 日間は休んでいて、退屈だったので家にいてウェブマスター フォーラムを閲覧していました。休憩...
月収10万元の起業の夢を実現するミニプログラム起業支援プランミニプログラムは、現在、WeChat エ...
パブリック クラウドはビジネスの俊敏性を高める可能性を秘めていますが、重要なコンピューティング リソ...
ほとんどのウェブサイトでは、ユーザーのログインが必要です。一般的な方法は、ユーザーにアカウントの登録...
SEM は Search Engine Marketing の略で、中国語で検索エンジン マーケティ...
最近のユーザー検索ログでは、多くのユーザーが当社が設計したタグを使用せず、外部の検索エンジンを使用し...