ホームページ バックエンド開発 C#.Net チュートリアル docker とは一体何ですか? なぜこれほど人気が​​あるのでしょうか? その長所と短所は何ですか?

docker とは一体何ですか? なぜこれほど人気が​​あるのでしょうか? その長所と短所は何ですか?

Nov 25, 2016 am 09:53 AM
docker

ドッカーとは何ですか?

簡単に言うと、Docker は GO 言語で書かれたプログラムによって実行される「コンテナ」(Linux コンテナ、LXC)です。現在のクラウド サービスの基礎は、同じ上で複数のコンテナを仮想化するオペレーティング システム レベルの分離です。物理サーバー。 Docker はアプリケーション レベルの分離を実装します。これにより、基本的な開発および運用単位が、仮想ホスト (VM) を直接操作することから、オペレーティング プログラムが実行される「コンテナ」に変更されます。

Docker は、開発者とシステム管理者が分散アプリケーションを公開および実行するために設計されたオープン プラットフォームです。 2 つの部分で構成されます:

Docker Engine: ポータブルで軽量なランタイム環境とパッケージ マネージャー。 (注* シングル OS とシングル スレッド。特に NodeJS に似ていますか?)

Docker Hub: 自動化されたワークフローの作成とアプリケーションの共有のために作成されたクラウド サービス。 (注* クラウドイメージ/パッケージ管理と npm パッケージ管理、特に npm に似ていますか?)

2013 年 3 月 20 日から、Docker の最初のバージョンが正式にリリースされ、2014 年 6 月に Docker 1.0 が正式にリリースされました。 15ヶ月。 Docker の開発の歴史は非常に短いですが、ますます人気が高まっています。

実際、コンテナ テクノロジは Docker の革新ではありません。HeroKu や NodeJitsu などのクラウド サービス プロバイダは同様の軽量仮想化テクノロジを採用していますが、Docker はこのコンテナ テクノロジを大規模にオープンソース化した最初の企業であり、広く受け入れられています。のコミュニティ。

良い部分

VM仮想マシンに対するDockerの利点は非常に明白で、軽量、高性能、利便性です。 以下の部分は、KVM and Docker LXC Benchmarking with OpenStack

高速です

。実行時のパフォーマンスは大幅に改善できます (古典的なケースでは 97% の改善です)

管理操作 (開始、停止、開始、再起動など) はすべて秒またはミリ秒で測定されます。

俊敏性

仮想マシンと同じくらい俊敏で、ベアメタルへの導入はボタンをクリックするだけで簡単です。

柔軟性

追加のオペレーティング システムを追加せずにアプリケーションとシステムを「コンテナ化」、

軽量

十分な「オペレーティング システム」があり、イメージを追加または削減するだけです。 100 ~ 1000 個のコンテナ コンテナをサーバー上にデプロイできます。

安い

オープンソースで無料、低コスト。最新の Linux カーネルによってサポートおよび駆動されます。注* Lightweight Container は、物理マシン上でより多くの「コンテナ」を開くことができ、VM よりも安価になる予定です。

エコシステム

はますます人気が高まっています。Google トレンド、docker、または LXC を見てください。

無数のコミュニティ アプリケーションやサードパーティ アプリケーションがあります。

クラウドサポート

無数のクラウドサービスが、Linuxコンテナを作成および管理するためのフレームワークを提供しています。

Docker のパフォーマンスの利点については、この IBM エンジニアのパフォーマンス向上の評価も参照してください。VM (OS システム レベルの仮想化) と比較して、あらゆる面で大幅に向上しています。

Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)

従来の v ms vs Docker Containers のパフォーマンス特性

物議を醸す部分

Go や NodeJS のように、どんなプロジェクトにも議論はつきものですし、Docker にも議論はあります。それはいくつか。

完全に分離できるでしょうか?

超複雑なビジネスシステムでは、単一のOSで完全な分離を実現できますか? 1つのプログラムのクラッシュ/メモリオーバーフロー/高いCPU使用率は、他のコンテナやシステム全体に影響を及ぼしますか?実際のマルチホスト運用環境で Docker がミッションクリティカルなシステムをサポートできるかどうかについては、多くの人がまだ懐疑的です。 注* Node.JS のシングル スレッドは高速かつ不安定で、複雑なシナリオには適用できないのではないかと疑問に思う人もいるのと同じです。

しかし、良いニュースは、より優れた分離をサポートするために、Linux カーネルがコンテナに多くの改良を加えたことです。

GO言語はまだ完全に成熟していません

DockerはGo言語で開発されていますが、GO言語はほとんどの開発者にとって比較的なじみがなく、改良が続けられており、成熟にはまだ時間がかかります。この半分ギット、半分パッケージの管理アプローチは、一部の人に不快感を与えます。

民間企業によって管理されています

Docker は Dotcloud と呼ばれる民間企業によって設計されました。たとえば、Docker プロジェクトのコンパイルにソース コードを使用することはできません。ブラックボックスによってコンパイルされたパッケージは、将来完全に無料ではない可能性があります。 現在、Docker は企業向けにエンタープライズレベルのサービス (コンサルティング、サポート、トレーニング) を開始しています。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

See all articles