初心者のための Docker チュートリアル: 基本、 Archi構造、コンテナ

ドッカーとは何ですか?

デッカー は、複数の機能を備えた仮想化のためのソフトウェア開発プラットフォームです。 Opera同じホスト上で実行されているシステムを接続します。ソフトウェアを迅速に配信するために、インフラストラクチャとアプリケーションを分離するのに役立ちます。 VM (仮想マシン) の作成に使用されるハイパーバイザーとは異なり、Docker での仮想化は、Docker コンテナーとも呼ばれるシステム レベルで実行されます。

以下の画像の違いがわかるように、Docker コンテナはホストの最上位で実行されます。 Operaションシステム。これは、効率とセキュリティの向上に役立ちます。さらに、コンテナーは使用するリソースが少ないため、仮想マシンを実行するよりも多くのコンテナーを同じインフラストラクチャ上で実行できます。

Docker とハイパーバイザーの仮想化
Docker とハイパーバイザーの仮想化

ホストのハードウェアと通信できる VM (例: より多くの仮想アダプターを作成するためのイーサネット アダプター) とは異なり、Docker コンテナーはホストの OS 上の分離された環境で実行されます。ホストが実行されていても Windows OS の助けを借りて、コンテナー内で Linux イメージを実行できます。 Hyper-V、システムの基本イメージを仮想化するための小さな VM が自動的に作成されます。この場合、 Linux.

Docker を使用する理由

  • Docker は、複数のサーバーを仮想化するために使用されるコンピューター ソフトウェアです。 Operaティングシステム 同じホスト上で実行されている
  • Docker はクライアントサーバー型のアプリケーションです。つまり、サーバーに中継するクライアントが存在します。
  • Docker イメージはコンテナの「ソース コード」です。 私たちはそれらを使って構築します
  • Dockerfile には 1 種類のレジストリがあります (2) パブリック レジストリと XNUMX) プライベート レジストリ
  • コンテナーは、Docker ボリュームの組織単位です。 簡単に言えば、イメージはテンプレートであり、コンテナーはそのテンプレートのコピーです。 同じイメージの複数のコンテナ (コピー) を持つことができます。

デッカー Archi構造

この Docker コンテナーのチュートリアルでは、Docker 内の Docker の主要コンポーネントについて説明します。 Archi構造:

デッカー Archi構造
デッカー Archi構造

ドッカーエンジン

Docker はクライアントサーバー型のアプリケーションです。つまり、サーバーに中継するクライアントが存在します。 そこで、Docker デーモンが呼び出されます。 dockerd は、サーバーを表す Docker エンジンです。 Docker デーモンとクライアントは同じホストまたはリモート ホスト上で実行でき、コマンド ライン クライアント バイナリと完全なホスト バイナリを介して通信します。 RESTful API デーモン dockerd と対話します。

Dockerイメージ

Docker イメージはコンテナの「ソース コード」です。 それらを使用してコンテナを構築します。 導入を迅速化するソフトウェアをプリインストールすることができます。 これらは移植可能であり、既存のイメージを使用することも、独自のイメージを構築することもできます。

Docker レジストリ

Docker は、構築したイメージをレジストリに保存します。 パブリックレジストリとプライベートレジストリがあります。 Docker 会社には、と呼ばれるパブリック レジストリがあります。 Dockerハブ、画像をプライベートに保存することもできます。 Docker ハブには何百万ものイメージがあり、今すぐ使用を開始できます。

ドッカーコンテナ

コンテナーは組織単位であり、Docker の基本概念の XNUMX つです。 イメージを構築して実行を開始するとき。 コンテナ内で実行しています。 コンテナでの類似性が使用されているのは、コンテナ内で実行しているソフトウェアの移植性のためです。 貨物船が実際のコンテナでできるのと同じように、ソフトウェアを移動、つまり「発送」し、変更、管理、作成または削除、破壊することができます。

簡単に言えば、イメージはテンプレートであり、コンテナーはそのテンプレートのコピーです。 同じイメージの複数のコンテナ (コピー) を持つことができます。

以下の画像は、さまざまなコンポーネント間の相互作用と、Docker コンテナーテクノロジーがどのように機能するかを完全に表しています。

docker コマンドには docker pull、docker run などがありますが、これについては後で詳しく説明します。

Linux/にDockerをインストールする方法Ubuntu

以下は、Linux/ 上での Docker のインストールプロセスを段階的に示しています。Ubuntu:

ステップ 1) Docker をインストールするには、Docker チームの DEB パッケージを使用する必要があります。

そのためには、いくつかの前提条件があります Ubuntu パッケージは必須です。

以下のコマンドを使用してインストールします Ubuntu パッケージ

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

※記号「\」は改行に使用するため必須ではありません。必要に応じて、XNUMX行だけで「\」を使用せずにコマンドを記述できます。

ステップ2) フィンガープリントを含む公式の Docker GPG キーを追加します。

以下の Docker コマンドを使用して GPG キーを入力します

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

ステップ3) 次に、Docker APT リポジトリを追加します。

以下の Docker コマンドを使用してリポジトリを追加します

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

リポジトリを追加し、GPG キーをホストに自動的に追加することを確認するメッセージが表示される場合があります。

lsb_release コマンドにより、 Ubuntu ホストの配布バージョン。

ステップ4) GPGキーを追加した後、

以下の Docker コマンドを使用して APT ソースを更新します

$ sudo apt-get update

これで、Docker パッケージ自体をインストールできるようになりました。

ステップ5) APT ソースが更新されると、

Docker パッケージのインストールを開始します Ubuntu 以下の Docker コマンドを使用して

$ sudo apt-get install docker-ce

上記のコマンドは、Docker およびその他の追加の必要なパッケージをインストールします。 Docker 1.8.0 より前のパッケージ名は lxc-docker で、Docker 1.8 から 1.13 までのパッケージ名は docker-engine でした。

注意: のドッカー Windows 必要 Windows 10 Pro または Enterprise バージョン 14393、または Windows 実行するサーバー 2016 RTM

基本的な Docker コマンドを使用して Docker を使用する方法

基本的な Docker コマンドを使用して Docker を使用する方法は次のとおりです。

前に述べたように、Docker のインストール後に実行する必要がある最も基本的なコマンドは $ docker info です。

$ sudo docker info

同様の結果または次の結果が得られるはずです

基本的な Docker コマンドを使用して Docker を使用する

上記の Docker の例でわかるように、Docker コンテナーの数が実行中、一時停止、または停止しているか、ダウンロードしたイメージの数がわかります。 それでは、この Docker コマンド チュートリアルの最初のイメージを取得しましょう。

$ sudo docker pull alpine

このコマンドを使用して、docker にイメージ alpine をダウンロードし、パブリック レジストリ (デフォルトで設定されている最新バージョン) から取得するように指示します。

*alpine は、完全なパッケージ インデックスを備え、サイズがわずか 5 MB の Alpine Linux に基づく最小限の Docker イメージです。

イメージをコンテナとして実行する場合は、この Docker チュートリアル ガイドの次のコマンドを使用します。

$ sudo docker run -i -t alpine /bin/bash

コマンドを実行すると、alpine のターミナルに直接送信されます。 -i フラグは、STDIN にアタッチされていない場合でも、コンテナーから STDIN を開いたままにします。 この永続的な標準入力は、対話型シェルに必要な入力の半分です。 -t フラグは残りの半分で、Docker に疑似 tty をコンテナに割り当てるように指示します。 これにより、新しいコンテナーに対話型シェルが提供されます。 単純な exit コマンドを使用してコンテナを終了します。

この Docker の基本チュートリアルでは、 Ubuntu 画像。

$ sudo docker run -it ubuntu /bin/bash

docker がローカルでイメージをチェックしていることがわかります。イメージが存在しない場合は、イメージがイメージ ライブラリから自動的に取得され、再び対話型シェルが実行されます。 コンテナを実行するときにコンテナに名前を付けることもできます。

$ sudo docker run –-name our_container -it ubuntu /bin/bash

そしてまた出ます。

インタラクティブ シェルを使用せずに、以前に作成したコンテナを実行することもできます。

$ sudo docker start container_name

そして docker stop コンテナ名を書いてコンテナを停止します

$ sudo docker stop container_name

実行中のコンテナをすべて表示したい場合は、次のコマンドを実行します。

$ docker ps

そして、すべてのコンテナーに対して、この docker ps -a のように、同じコマンドの最後に「-a」を追加します。

このコマンドは、コンテナの ID、作成時に使用されているイメージ、実行ステータス、公開ポート、および管理を容易にするためにランダムに生成されたコンテナの名前を表示します。

コンテナーを実行するときに、コンテナーが使用しているリソースの量も知りたいと思います。そのために、コマンドを使用できます。

$ docker stats

また、ローカルにダウンロードした画像とその情報も確認できます。

$ sudo docker images

上記の Docker 例のコマンドは、イメージのバージョン、固有のイメージ ID、作成日、イメージ サイズを示すタグが付いた Docker イメージを表示します。

仮想化とは何ですか?

以前は、サービスの展開プロセスは時間がかかり、面倒なものでした。まず、開発者がコードを書き、次に運用チームがそれをベアメタル マシンに展開し、コードが機能するためにライブラリ バージョン、パッチ、言語コンパイラーに注意する必要がありました。バグやエラーがあれば、プロセスが最初からやり直され、開発者がそれを修正し、運用チームが再び展開する必要がありました。

ハイパーバイザーの作成により改善されました。 ハイパーバイザーには複数の 仮想マシン または、同じホスト上の VM (実行中またはオフになっている可能性があります)。 VM により、コードのデプロイとバグ修正の待ち時間が大幅に短縮されましたが、本当のゲームチェンジャーは Docker コンテナでした。

重要な Docker コマンド

以下は重要な Docker コマンドです。

Command 説明
ドッカー情報 情報コマンド
ドッカープル 画像をダウンロードする
docker run -i -t イメージ名 /bin/bash イメージをコンテナとして実行する
docker start our_container コンテナの起動
docker stop コンテナ名 コンテナを停止する
ドッカーのps 実行中のすべてのコンテナのリスト
ドッカー統計 コンテナ情報
ドッカー画像 ダウンロードした画像一覧
Docker のクリーンアップ 実行中のコンテナをすべて強制終了します。

また、読む Docker の面接の質問と回答 新人だけでなく経験豊富なプロフェッショナルも対象。

まとめ

  • Docker は、複数の機能を備えた仮想化のためのソフトウェア開発プラットフォームです。 Opera同じホスト上で実行されているシステムを接続します。ソフトウェアを迅速に配信するために、インフラストラクチャとアプリケーションを分離するのに役立ちます。
  • デッカー Archi構造: Docker エンジン、Docker イメージ、Docker レジストリ、Docker コンテナー。
  • ドッカー エンジン: Docker はクライアントサーバー型のアプリケーションです。つまり、サーバーに中継するクライアントが存在します。 そこで、Docker デーモンが呼び出されます。 dockerd は、サーバーを表す Docker エンジンです。
  • ドッカーイメージ: Docker イメージはコンテナの「ソース コード」です。 それらを使用してコンテナを構築します。 導入を迅速化するソフトウェアをプリインストールすることができます。 これらは移植可能であり、既存のイメージを使用することも、独自のイメージを構築することもできます。
  • Docker レジストリ: Docker は、構築したイメージをレジストリに保存します。 パブリックレジストリとプライベートレジストリがあります。 Docker 会社には Docker Hub と呼ばれるパブリック レジストリがあり、そこにイメージをプライベートに保存することもできます。 Docker ハブには何百万ものイメージがあり、今すぐ使用を開始できます。
  • Dockerコンテナ: コンテナーは組織単位であり、Docker の基本概念の XNUMX つです。 イメージを構築して実行を開始するとき。 コンテナ内で実行しています。 コンテナでの類似性が使用されているのは、コンテナ内で実行しているソフトウェアの移植性のためです。