Dockerチュートリアル–Dockerとコンテナ化の概要



このDockerチュートリアルでは、Dockerの背後にある必要性を理解し、Dockerの概要を説明します。 Dockerチュートリアルシリーズの最初のブログです

以前の一連のDevOpsチュートリアルブログをお見逃しなく。 通過する ここに。Dockerコンテナの封じ込められない傾向が高まっており、組織は所有する専門家を探しています 今回は、Dockerの概要を紹介します。

Dockerチュートリアル

このDockerチュートリアルブログでは、Docker –新時代のコンテナ化テクノロジーの概念と実践を紹介します。





このブログでは、以下のトピックに焦点を当てます。

  • 仮想化とは何ですか?
  • コンテナ化とは
  • 仮想化に対するコンテナ化の利点
  • Dockerの概要
  • Dockerの利点
  • 仮想化とコンテナ化
  • Dockerのインストール
  • Dockerfile、Docker Image、Dockerコンテナ
  • Docker Hubとは何ですか?
  • Dockerアーキテクチャ
  • DockerCompose

Dockerは人気を集めており、その使用法は野火のように広がっています。 Dockerの人気が高まっている理由は、DockerをIT組織で使用できる範囲にあります。開発者とシステム管理者の両方に役立つ機能を備えたツールはほとんどありません。 Dockerは、その約束を真に果たすツールの1つです。 ビルド輸送する そして 実行



簡単に言うと、Dockerはソフトウェアコンテナ化プラットフォームです。つまり、アプリケーションをビルドし、依存関係とともにコンテナにパッケージ化すると、これらのコンテナを簡単に出荷して他のマシンで実行できます。

例えば: RubyとPythonの両方で書かれたLinuxベースのアプリケーションを考えてみましょう。このアプリケーションには、Linux、Ruby、Pythonの特定のバージョンが必要です。ユーザー側でのバージョンの競合を回避するために、アプリケーションと一緒にインストールされた必要なバージョンのRubyとPythonを使用してLinuxDockerコンテナーを作成できます。これで、エンドユーザーは、依存関係やバージョンの競合を心配することなく、このコンテナーを実行することでアプリケーションを簡単に使用できます。

これらのコンテナは、仮想化の進化版と見なすことができるコンテナ化を使用します。同じタスクは仮想マシンを使用して実行することもできますが、あまり効率的ではありません。



私は通常、この時点で質問を受け取ります。つまり、仮想化とコンテナ化の違いは何ですか?これらの2つの用語は互いに非常に似ています。では、最初に仮想化とは何ですか?

仮想化とは何ですか?

仮想化は、ホストオペレーティングシステムの上にゲストオペレーティングシステムをインポートする手法です。この手法は、開発者がすべて同じホスト上で実行されている異なる仮想マシンで複数のオペレーティングシステムを実行できるようになったため、当初は啓示でした。これにより、追加のハードウェアリソースが不要になりました。仮想マシンまたは仮想化の利点は次のとおりです。

Tableauでデータをブレンドする方法
  • 複数のオペレーティングシステムを同じマシンで実行できます
  • 故障状態の場合のメンテナンスとリカバリは簡単でした
  • インフラストラクチャの必要性が減少したため、総所有コストも削減されました

仮想マシンアーキテクチャ-Dockerの概要に関するDockerチュートリアル-Edureka

右の図では、仮想マシンに他ならない3つのゲストオペレーティングシステムが実行されているホストオペレーティングシステムがあることがわかります。

完璧なものは何もないことをご存知のとおり、仮想化にはいくつかの欠点もあります。同じホストオペレーティングシステムで複数の仮想マシンを実行すると、パフォーマンスが低下します。これは、ゲストOSがホストOS上で実行されているためです。ホストOSには、独自のカーネルとライブラリおよび依存関係のセットがあります。これは、システムリソースの大部分、つまりハードディスク、プロセッサ、特にRAMを消費します。

仮想化を使用する仮想マシンのもう1つの問題は、起動に1分近くかかることです。これは、リアルタイムアプリケーションの場合に非常に重要です。

仮想化の欠点は次のとおりです。

  • 複数の仮想マシンを実行すると、パフォーマンスが不安定になります
  • ハイパーバイザーは、ホストオペレーティングシステムほど効率的ではありません
  • 起動プロセスは長く、時間がかかります

これらの欠点は、コンテナ化と呼ばれる新しい技術の出現につながりました。それでは、コンテナ化についてお話ししましょう。

コンテナ化とは何ですか?

コンテナ化は、仮想化をオペレーティングシステムレベルにもたらす手法です。仮想化はハードウェアに抽象化をもたらしますが、コンテナ化はオペレーティングシステムに抽象化をもたらします。コンテナ化も仮想化の一種であることに注意してください。ただし、ここにはゲストOSがなく、ホストのオペレーティングシステムを利用し、仮想マシンとは異なり、必要に応じて関連するライブラリとリソースを共有するため、コンテナ化はより効率的です。アプリケーション固有のバイナリとコンテナのライブラリはホストカーネルで実行されるため、処理と実行が非常に高速になります。コンテナの起動でさえ、ほんの一瞬しかかかりません。すべてのコンテナが共有するため、オペレーティングシステムをホストし、アプリケーション関連のバイナリとライブラリのみを保持します。これらは軽量で、仮想マシンよりも高速です。

仮想化に対するコンテナ化の利点:

  • 同じOSカーネル上のコンテナは軽量で小型です
  • VMと比較してより良いリソース使用率
  • 起動プロセスは短く、数秒かかります

右の図では、すべてのコンテナで共有されているホストオペレーティングシステムがあることがわかります。コンテナには、コンテナごとに個別のアプリケーション固有のライブラリのみが含まれており、高速でリソースを浪費しません。

これらのコンテナはすべて、ホストオペレーティングシステムにネイティブではないコンテナ化レイヤーによって処理されます。したがって、ホストオペレーティングシステムでコンテナを作成して実行できるソフトウェアが必要です。

Dockerの詳細については、このDockerチュートリアルビデオをご覧ください。

初心者のためのDockerチュートリアル| Dockerとは何ですか? | DevOpsツール|エドゥレカ

それでは、Dockerの概要をご紹介します。

Dockerチュートリアル–Dockerの概要

Dockerは、アプリケーションとそのすべての依存関係をコンテナーの形式でパッケージ化するコンテナー化プラットフォームであり、アプリケーションがどのような環境でもシームレスに機能することを保証します。

javaインスタンス変数とは

右の図でわかるように、各アプリケーションは個別のコンテナーで実行され、独自のライブラリと依存関係のセットがあります。これにより、プロセスレベルの分離が保証されます。つまり、各アプリケーションが他のアプリケーションから独立しているため、開発者は相互に干渉しないアプリケーションを確実に構築できます。

開発者として、さまざまなアプリケーションがインストールされたコンテナーを作成し、それをQAチームに渡すことができます。このチームは、コンテナーを実行するだけで開発者環境を複製できます。

Dockerの利点

現在、QAチームは、コードをテストするためにすべての依存ソフトウェアとアプリケーションをインストールする必要はありません。これにより、時間とエネルギーを大幅に節約できます。これにより、開発から展開まで、プロセスに関与するすべての個人間で作業環境の一貫性が確保されます。システムの数は簡単にスケールアップでき、コードを簡単にシステムにデプロイできます。

仮想化とコンテナ化

仮想化とコンテナ化の両方で、ホストマシン内で複数のオペレーティングシステムを実行できます。

仮想化は、単一のホストマシンで多くのオペレーティングシステムを作成することを扱います。一方、コンテナ化では、必要に応じて、アプリケーションの種類ごとに複数のコンテナが作成されます。

図: ビッグデータ分析とは–仮想化とコンテナ化

画像からわかるように、主な違いは、仮想化には複数のゲストオペレーティングシステムがあり、コンテナ化には存在しないことです。コンテナ化の最良の部分は、重い仮想化と比較して非常に軽量であることです。

それでは、Dockerをインストールしましょう。

Dockerをインストールします。

Ubuntu17.10マシンにDockerをインストールします。 Dockerをインストールする手順は次のとおりです。

  1. 必要なパッケージをインストールする
  2. Dockerリポジトリをセットアップする
  3. UbuntuにDockerをインストールする

1.必要なパッケージをインストールします。

Dockerをインストールするためにシステムに必要な特定のパッケージがあります。以下のコマンドを実行して、これらのパッケージをインストールします。

sudo apt-get install curl apt-transport-https ca-certificates software-properties-common

2. Dockerリポジトリをセットアップします:

ここで、Dockersの公式GPGキーをインポートして、apt-getでインストールする前にパッケージの署名を確認します。ターミナルで以下のコマンドを実行します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

次に、依存関係を含むDockerパッケージを含むDockerリポジトリをUbuntuシステムに追加し、次のコマンドを実行します。

sudo add-apt-repository'deb [arch = amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)stable '

Javaのベクトルとは何ですか

3.UbuntuにDockerをインストールします。

次に、apt indexをアップグレードし、Dockerコミュニティエディションをインストールする必要があります。そのためには、以下のコマンドを実行します。

sudo apt-get update sudo apt-get install docker-ce

おめでとう! Dockerが正常にインストールされました。また、一般的に使用されるいくつかをチェックしてください Dockerコマンド

ここで、Dockerの重要な概念をいくつか見てみましょう。

Dockerfile、Docker Image、Docker Container:

  1. Dockerイメージは、Dockerfileと呼ばれるファイルに書き込まれた一連のコマンドによって作成されます。
  2. このDockerfileをdockerコマンドを使用して実行すると、名前の付いたDockerイメージが生成されます。
  3. このイメージが「dockerrun」コマンドによって実行されると、実行時に開始する必要のあるアプリケーションまたはサービスが自動的に開始されます。

Docker Hub:

Docker Hubは、DockerImagesのGitHubに似ています。これは基本的に、さまざまなコミュニティによってアップロードされたDockerイメージを見つけることができるクラウドレジストリです。独自のイメージを開発してDocker Hubにアップロードすることもできますが、最初にDockerHubでアカウントを作成する必要があります。

Dockerアーキテクチャ:

これは、3つの主要コンポーネントを備えたクライアントサーバーアプリケーションであるDockerエンジンで構成されています。

  1. デーモンプロセス(dockerコマンド)と呼ばれる長時間実行プログラムの一種であるサーバー。
  2. プログラムがデーモンと通信し、デーモンに何をするかを指示するために使用できるインターフェースを指定するRESTAPI。
  3. コマンドラインインターフェイス(CLI)クライアント(dockerコマンド)。
  4. CLIは、Docker REST APIを使用して、スクリプトまたは直接CLIコマンドを介してDockerデーモンを制御または操作します。他の多くのDockerアプリケーションは、基盤となるAPIとCLIを使用します。

詳細については、このブログを参照してください

最後に、このDockerチュートリアルブログで、DockerComposeについて説明します。

Docker構成:

Docker Composeは基本的に、複数のDockerコンテナを単一のサーバーとして実行するために使用されます。例を挙げましょう:

WordPress、Maria DB、PHPMyAdminを必要とするアプリケーションがあるとします。それぞれを個別に開始する必要なしに、両方のコンテナーをサービスとして開始する1つのファイルを作成できます。これは、マイクロサービスアーキテクチャを使用している場合に特に便利です。

上の私のブログを参照してください Dockerコンテナ それを実際に実行する方法を理解する。

また、DockerComposeを使用して平均スタックアプリケーションをコンテナ化する方法についてこのブログを読むことができます。

これで、DockerチュートリアルのDockerとコンテナ化の概要に関する最初のブログは終了です。

Dockerに関する次のブログをご覧ください。

DevOpsとは何かを理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Edureka DevOps認定トレーニングコースは、SDLCの複数のステップを自動化するために、学習者がPuppet、Jenkins、Nagios、Ansible、Chef、Saltstack、GITなどのさまざまなDevOpsプロセスとツールに関する専門知識を習得するのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。