Docker-クイックガイド

Dockerはコンテナ管理サービスです。Dockerのキーワードはdevelop, ship そして runどこでも。Dockerの全体的な考え方は、開発者がアプリケーションを簡単に開発し、それらをコンテナーに入れて、どこにでもデプロイできるようにすることです。

Dockerの最初のリリースは2013年3月で、それ以来、特にアジャイルベースのプロジェクトに直面して、Dockerは現代の世界開発の流行語になりました。

Dockerの機能

  • Dockerには、コンテナーを介してオペレーティングシステムのフットプリントを小さくすることで、開発のサイズを縮小する機能があります。

  • コンテナーを使用すると、開発、QA、運用など、さまざまなユニットのチームがアプリケーション間でシームレスに作業することが容易になります。

  • Dockerコンテナーは、物理マシンや仮想マシン、さらにはクラウドのどこにでもデプロイできます。

  • Dockerコンテナーは非常に軽量であるため、非常に簡単にスケーラブルです。

Dockerのコンポーネント

Dockerには次のコンポーネントがあります

  • Docker for Mac − MacOSでDockerコンテナを実行できます。

  • Docker for Linux − LinuxOSでDockerコンテナを実行できます。

  • Docker for Windows − WindowsOSでDockerコンテナを実行できます。

  • Docker Engine −Dockerイメージの構築とDockerコンテナの作成に使用されます。

  • Docker Hub −これは、さまざまなDockerイメージをホストするために使用されるレジストリです。

  • Docker Compose −これは、複数のDockerコンテナを使用するアプリケーションを定義するために使用されます。

これらすべてのコンポーネントについては、以降の章で詳しく説明します。

Dockerの公式サイトは https://www.docker.com/このサイトには、Dockerソフトウェアに関するすべての情報とドキュメントがあります。また、さまざまなオペレーティングシステムのダウンロードリンクもあります。

Dockerのインストールを開始するには、Ubuntuインスタンスを使用します。Oracle Virtual Boxを使用して、仮想Linuxインスタンスをまだセットアップしていない場合は、セットアップできます。

次のスクリーンショットは、Oracle VirtualBoxにインストールされている単純なUbuntuサーバーを示しています。という名前のOSユーザーがいますdemo これは、サーバーへのルートアクセス全体を持つシステムで定義されています。

Dockerをインストールするには、以下の手順に従う必要があります。

Step 1− Dockerをインストールする前に、まず正しいLinuxカーネルバージョンが実行されていることを確認する必要があります。Dockerは、Linuxカーネルバージョン3.8以降でのみ実行するように設計されています。これを行うには、次のコマンドを実行します。

うなめ

このメソッドは、Linuxシステムに関するシステム情報を返します。

構文

uname -a

オプション

a −これは、システム情報が確実に返されるようにするために使用されます。

戻り値

このメソッドは、Linuxシステムに関する次の情報を返します-

  • カーネル名
  • ノード名
  • カーネルリリース
  • カーネルバージョン
  • machine
  • processor
  • ハードウェアプラットフォーム
  • オペレーティング・システム

uname –a

出力

上記のコマンドを実行すると、次の結果が得られます-

出力から、Linuxカーネルのバージョンはバージョン3.8よりも高い4.2.0-27であることがわかります。これで、準備は完了です。

Step 2 − OSを最新のパッケージで更新する必要があります。これは、次のコマンドで実行できます。

apt-get

この方法では、インターネットからLinuxシステムにパッケージをインストールします。

構文

sudo apt-get update

オプション

  • sudosudo コマンドは、コマンドがルートアクセスで実行されるようにするために使用されます。

  • updateupdate オプションを使用すると、Linuxシステムですべてのパッケージが更新されます。

戻り値

なし

sudo apt-get update

出力

上記のコマンドを実行すると、次の結果が得られます-

このコマンドはインターネットに接続し、Ubuntuの最新のシステムパッケージをダウンロードします。

Step 3−次のステップは、必要なDockerパッケージをダウンロードするために後でDockerサイトと連携するために必要となる必要な証明書をインストールすることです。次のコマンドで実行できます。

sudo apt-get install apt-transport-https ca-certificates

Step 4−次のステップは、新しいGPGキーを追加することです。このキーは、Dockerに必要なパッケージをダウンロードするときにすべてのデータが暗号化されるようにするために必要です。

次のコマンドは、ID58118E89F3A912897C070ADBF76221572C52609Dのキーをからダウンロードします。 keyserver hkp://ha.pool.sks-keyservers.net:80そしてそれをに追加します advキーホルダー。この特定のキーは、必要なDockerパッケージをダウンロードするために必要であることに注意してください。

Step 5 −次に、お持ちのUbuntuのバージョンに応じて、関連するサイトをに追加する必要があります。 docker.list のために apt package manager、DockerサイトからDockerパッケージを検出し、それに応じてダウンロードできるようにします。

  • 正確な12.04(LTS)─deb https://apt.dockerproject.org/repoubuntu-正確なメイン

  • 信頼できる14.04(LTS)─deb https://apt.dockerproject.org/repo/ ubuntu-信頼できるメイン

  • Wily15.10─deb https://apt.dockerproject.org/repo ubuntu-wily main

  • Xenial 16.04(LTS)- https://apt.dockerproject.org/repo ubuntu-xenial main

OSはUbuntu14.04であるため、リポジトリ名を「deb」として使用します。 https://apt.dockerproject.org/repoubuntu-信頼できるメイン」。

次に、このリポジトリをに追加する必要があります docker.list 上記のように。

echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main” 
   | sudo tee /etc/apt/sources.list.d/docker.list

Step 6 −次に、 apt-get update command Ubuntuシステムのパッケージを更新します。

Step 7 −パッケージマネージャーが正しいリポジトリーを指していることを確認したい場合は、を発行して確認できます。 apt-cache command

apt-cache policy docker-engine

出力では、次のリンクが表示されます https://apt.dockerproject.org/repo/

Step 8 −発行 apt-get update command ローカルシステム上のすべてのパッケージが最新であることを確認します。

Step 9 − Ubuntu Trusty、Wily、およびXenialの場合、linux-image-extra- *カーネルパッケージをインストールする必要があります。これにより、 aufs storage driver。このドライバーは、新しいバージョンのDockerで使用されます。

次のコマンドを使用して実行できます。

sudo apt-get install linux-image-extra-$(uname -r) 
   linux-image-extra-virtual

Step 10 −最後のステップはDockerをインストールすることであり、これは次のコマンドで実行できます−

sudo apt-get install –y docker-engine

ここに、 apt-get インストールオプションを使用して、Docker WebサイトからDockerエンジンイメージをダウンロードし、Dockerをインストールします。

Docker-engineは、Ubuntuベースのシステム用のDockerCorporationの公式パッケージです。

次のセクションでは、インストールされたDockerのバージョンを確認する方法を説明します。

Dockerバージョン

実行中のDockerのバージョンを確認するには、次のコマンドを発行できます-

構文

docker version

オプション

  • version −DockerコマンドがインストールされているDockerバージョンを確実に返すために使用されます。

戻り値

出力には、システムにインストールされているDockerバージョンのさまざまな詳細が表示されます。

sudo docker version

出力

上記のプログラムを実行すると、次の結果が得られます-

Docker情報

システムで実行されているDockerの詳細を確認するには、次のコマンドを発行します-

構文

docker info

オプション

  • info −これは、DockerコマンドがインストールされているDockerサービスに関する詳細情報を確実に返すために使用されます。

戻り値

出力には、システムにインストールされているDockerのさまざまな詳細が表示されます。

  • コンテナの数
  • 画像数
  • Dockerが使用するストレージドライバー
  • Dockerが使用するルートディレクトリ
  • Dockerが使用する実行ドライバー

sudo docker info

出力

上記のコマンドを実行すると、次の結果が得られます-

Docker for Windows

DockerはWindowsをすぐにサポートしますが、Docker for Windowsをインストールするには、次の構成が必要です。

システム要求

Windows OS Windows 1064ビット
記憶 2 GB RAM(推奨)

Docker forWindowsは-からダウンロードできます。 https://docs.docker.com/docker-for-windows/

DockerToolBox

Docker ToolBoxは、Windows8.1やWindows7などの古いバージョンのWindows用に設計されています。DockerforWindowsをインストールするには、次の構成が必要です。

システム要求

Windows OS Windows 7、8、8.1
記憶 2 GB RAM(推奨)
仮想化 これを有効にする必要があります。

DockerToolBoxは-からダウンロードできます。 https://www.docker.com/products/docker-toolbox

各製品のインストールを見ていきましょう。

Docker for Windows

インストーラーがダウンロードされたら、それをダブルクリックしてインストーラーを起動し、以下の手順に従います。

Step 1 −契約条件をクリックしてから、[インストール]ボタンをクリックして、インストールを続行します。

Step 2 −完了したら、[完了]ボタンをクリックしてインストールを完了します。

DockerToolBox

インストーラーがダウンロードされたら、それをダブルクリックしてインストーラーを起動し、以下の手順に従います。

Step 1 −スタート画面の[次へ]ボタンをクリックします。

Step 2 −次の画面でデフォルトの場所を保持し、[次へ]ボタンをクリックします。

Step 3 −デフォルトのコンポーネントを保持し、[次へ]ボタンをクリックして続行します。

Step 4 −追加のタスクをそのままにして、[次へ]ボタンをクリックします。

Step 5 −最後の画面で、[インストール]ボタンをクリックします。

DockerToolboxの操作

ここで、DockerToolboxを使用してWindows上のDockerコンテナーを操作する方法を見てみましょう。最初のステップは、Dockerツールボックスのインストールが実行されたときにショートカットがデスクトップに作成されるDockerツールボックスアプリケーションを起動することです。

次に、Dockerツールボックスの起動時に実行されている構成が表示されます。

完了すると、Dockerが構成されて起動されたことがわかります。Docker用のインタラクティブシェルを取得します。

Dockerが正しく実行されることをテストするために、Dockerを使用できます run command 簡単なものをダウンロードして実行するには HelloWorld Docker container

Dockerの動作 run command 以下に示します-

docker run

このコマンドは、Dockerコンテナーでコマンドを実行するために使用されます。

構文

docker run image

オプション

  • Image −これは、コンテナの実行に使用されるイメージの名前です。

戻り値

出力は、目的のコンテナーでコマンドを実行します。

sudo docker run hello-world

このコマンドはダウンロードします hello-world 画像がまだ存在しない場合は、 hello-world コンテナとして。

出力

上記のコマンドを実行すると、次の結果が得られます-

WindowsでUbuntuOSを実行する場合は、次のコマンドを使用してUbuntuイメージをダウンロードできます。

Docker run –it ubuntu bash

ここでは、Dockerにインタラクティブモードでコマンドを実行するように指示しています。 –it オプション。

出力では、Ubuntuイメージがダウンロードされて実行され、Ubuntuコンテナーにrootユーザーとしてログインすることがわかります。

Docker Hubは、他のコミュニティによって構築されたDockerイメージをダウンロードできるようにするクラウド上のレジストリサービスです。独自のDockerビルドイメージをDockerハブにアップロードすることもできます。この章では、DockerハブからJenkinsDockerイメージをダウンロードして使用する方法を説明します。

Dockerハブの公式サイトは- https://www.docker.com/community-edition#/add_ons

Step 1 −まず、Dockerハブで簡単なサインアップを行う必要があります。

Step 2 −サインアップすると、DockerHubにログインします。

Step 3 −次に、Jenkinsの画像を参照して見つけましょう。

Step 4 −同じページを下にスクロールすると、Dockerが表示されます。 pullコマンド。これは、JenkinsイメージをローカルのUbuntuサーバーにダウンロードするために使用されます。

Step 5 −ここで、Ubuntuサーバーに移動し、次のコマンドを実行します−

sudo docker pull jenkins

Jenkinsを実行するには、次のコマンドを実行する必要があります-

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

上記について以下の点に注意してください sudo コマンド-

  • 私たちは使用しています sudo ルートアクセスで実行されることを確認するコマンド。

  • ここに、 jenkins DockerハブからダウンロードしてUbuntuマシンにインストールするイメージの名前です。

  • -p は、内部Dockerイメージのポート番号をメインのUbuntuサーバーにマップして、それに応じてコンテナーにアクセスできるようにするために使用されます。

これで、JenkinsがUbuntuマシンのコンテナーとして正常に実行されます。

Dockerでは、すべてがイメージに基づいています。画像は、ファイルシステムとパラメータの組み合わせです。Dockerで次のコマンドの例を見てみましょう。

docker run hello-world
  • Dockerコマンドは特定のものであり、オペレーティングシステム上のDockerプログラムに何かを行う必要があることを通知します。

  • ザ・ run コマンドは、イメージのインスタンスを作成することを示すために使用されます。これは、 container

  • 最後に、「hello-world」は、コンテナーが作成されるイメージを表します。

次に、Docker Hubで利用可能なCentOSイメージを使用して、UbuntuマシンでCentOSを実行する方法を見てみましょう。これを行うには、Ubuntuマシンで次のコマンドを実行します-

sudo docker run centos –it /bin/bash

上記について以下の点に注意してください sudo コマンド-

  • 私たちは使用しています sudo で実行されることを確認するコマンド root アクセス。

  • ここに、 centos Docker Hubからダウンロードして、Ubuntuマシンにインストールするイメージの名前です。

  • ─it で実行したいことを言及するために使用されます interactive mode

  • /bin/bash CentOSが起動して実行されると、bashシェルを実行するために使用されます。

Dockerイメージの表示

システム上のDockerイメージのリストを表示するには、次のコマンドを発行できます。

docker images

このコマンドは、現在システムにインストールされているすべてのイメージを表示するために使用されます。

構文

docker images

オプション

なし

戻り値

出力には、システム上の画像のリストが表示されます。

sudo docker images

出力

上記のコマンドを実行すると、次の結果が生成されます-

上記の出力から、サーバーに3つのイメージがあることがわかります。 centos, newcentos, そして jenkins。各画像には次の属性があります-

  • TAG −これは画像に論理的にタグを付けるために使用されます。

  • Image ID −これは画像を一意に識別するために使用されます。

  • Created −イメージが作成されてからの日数。

  • Virtual Size −画像のサイズ。

Dockerイメージのダウンロード

Dockerを使用してDockerHubから画像をダウンロードできます runコマンド。これをどのように行うことができるかを詳しく見てみましょう。

構文

次の構文は、Dockerコンテナーでコマンドを実行するために使用されます。

docker run image

オプション

  • Image −これは、コンテナの実行に使用されるイメージの名前です。

戻り値

出力は、目的のコンテナーでコマンドを実行します。

sudo docker run centos

このコマンドはダウンロードします centos イメージ(まだ存在しない場合)を作成し、OSをコンテナーとして実行します。

出力

上記のコマンドを実行すると、次の結果が得られます-

これで、CentOSDockerイメージがダウンロードされたことがわかります。さて、Dockerを実行するとimages システム上の画像のリストを表示するコマンドを実行すると、 centos 画像も。

Dockerイメージの削除

システム上のDockerイメージは、 docker rmiコマンド。このコマンドをさらに詳しく見てみましょう。

docker rmi

このコマンドは、Dockerイメージを削除するために使用されます。

構文

docker rmi ImageID

オプション

  • ImageID −これは削除する必要のある画像のIDです。

戻り値

出力には、削除された画像の画像IDが表示されます。

sudo docker rmi 7a86f8ffcb25

ここに、 7a86f8ffcb25 の画像IDです newcentos 画像。

出力

上記のコマンドを実行すると、次の結果が生成されます-

イメージに対するDockerコマンドをさらにいくつか見てみましょう。

Dockerイメージ-q

このコマンドは、画像の画像IDのみを返すために使用されます。

構文

docker images

オプション

  • q −DockerコマンドにイメージIDのみを返すように指示します。

戻り値

出力には、Dockerホスト上のイメージのイメージIDのみが表示されます。

sudo docker images -q

出力

上記のコマンドを実行すると、次の結果が生成されます-

dockerinspect

このコマンドは、イメージまたはコンテナーの詳細を表示するために使用されます。

構文

docker inspect Repository

オプション

  • Repository −これは画像の名前です。

戻り値

出力には、画像の詳細情報が表示されます。

sudo docker inspect jenkins

出力

上記のコマンドを実行すると、次の結果が生成されます-

コンテナは、Dockerrunコマンドを使用して実行できるDockerイメージのインスタンスです。Dockerの基本的な目的は、コンテナーを実行することです。コンテナの操作方法について説明しましょう。

コンテナの実行

コンテナの実行はDockerで管理されます runコマンド。コンテナをインタラクティブモードで実行するには、最初にDockerコンテナを起動します。

sudo docker run –it centos /bin/bash

次に、Crtl + pを押すと、OSシェルに戻ります。

次に、Ubuntuサーバー上のCentOSシステムのインスタンスで実行します。

コンテナのリスト

を介してマシン上のすべてのコンテナを一覧表示できます。 docker psコマンド。このコマンドは、現在実行中のコンテナーを返すために使用されます。

docker ps

構文

docker ps

オプション

なし

戻り値

出力には、現在実行中のコンテナが表示されます。

sudo docker ps

出力

上記のコマンドを実行すると、次の結果が生成されます-

のいくつかのバリエーションを見てみましょう docker ps コマンド。

docker ps -a

このコマンドは、システム上のすべてのコンテナを一覧表示するために使用されます

構文

docker ps -a

オプション

  • ─a −それは docker ps システム上のすべてのコンテナを一覧表示するコマンド。

戻り値

出力にはすべてのコンテナが表示されます。

sudo docker ps -a

出力

上記のコマンドを実行すると、次の結果が生成されます-

Dockerの履歴

このコマンドを使用すると、コンテナを介してイメージで実行されたすべてのコマンドを確認できます。

構文

docker history ImageID

オプション

  • ImageID −これは、それに対して実行されたすべてのコマンドを表示するイメージIDです。

戻り値

出力には、そのイメージに対して実行されたすべてのコマンドが表示されます。

sudo docker history centos

上記のコマンドは、に対して実行されたすべてのコマンドを表示します centos 画像。

出力

上記のコマンドを実行すると、次の結果が生成されます-

この章では、コンテナーで何ができるかを詳しく説明します。

Dockerトップ

このコマンドを使用すると、コンテナ内の上位のプロセスを確認できます。

構文

docker top ContainerID

オプション

  • ContainerID −これは、上位のプロセスを表示するコンテナIDです。

戻り値

出力には、コンテナー内の最上位プロセスが表示されます。

sudo docker top 9f215ed0b0d3

上記のコマンドは、コンテナ内の最上位プロセスを表示します。

出力

上記のコマンドを実行すると、次の結果が生成されます-

Dockerストップ

このコマンドは、実行中のコンテナーを停止するために使用されます。

構文

docker stop ContainerID

オプション

  • ContainerID −これは停止する必要のあるコンテナIDです。

戻り値

出力には、停止したコンテナのIDが表示されます。

sudo docker stop 9f215ed0b0d3

上記のコマンドはDockerコンテナを停止します 9f215ed0b0d3

出力

上記のコマンドを実行すると、次の結果が生成されます-

docker rm

このコマンドは、コンテナーを削除するために使用されます。

構文

docker rm ContainerID

オプション

  • ContainerID −これは削除する必要のあるコンテナIDです。

戻り値

出力には、削除されたコンテナのIDが表示されます。

sudo docker rm 9f215ed0b0d3

上記のコマンドはDockerコンテナを削除します 9f215ed0b0d3

出力

上記のコマンドを実行すると、次の結果が生成されます-

Docker統計

このコマンドは、実行中のコンテナーの統計を提供するために使用されます。

構文

docker stats ContainerID

オプション

  • ContainerID −これは、統計を提供する必要があるコンテナIDです。

戻り値

出力には、コンテナのCPUとメモリの使用率が表示されます。

sudo docker stats 9f215ed0b0d3

上記のコマンドは、コンテナのCPUとメモリの使用率を提供します 9f215ed0b0d3

出力

上記のコマンドを実行すると、次の結果が生成されます-

dockerattach

このコマンドは、実行中のコンテナーに接続するために使用されます。

構文

docker attach ContainerID

オプション

  • ContainerID −これは添付する必要のあるコンテナIDです。

戻り値

なし

sudo docker attach 07b0b6f434fe

上記のコマンドはDockerコンテナにアタッチされます 07b0b6f434fe

出力

上記のコマンドを実行すると、次の結果が生成されます-

Dockerコンテナーに接続したら、上記のコマンドを実行して、そのDockerコンテナーでのプロセス使用率を確認できます。

dockerpause

このコマンドは、実行中のコンテナー内のプロセスを一時停止するために使用されます。

構文

docker pause ContainerID

オプション

  • ContainerID −これは、コンテナ内のプロセスを一時停止する必要があるコンテナIDです。

戻り値

一時停止したコンテナのContainerID。

sudo docker pause 07b0b6f434fe

上記のコマンドは、実行中のコンテナ内のプロセスを一時停止します 07b0b6f434fe

出力

上記のコマンドを実行すると、次の結果が生成されます-

dockerunpause

このコマンドは、 unpause 実行中のコンテナ内のプロセス。

構文

docker unpause ContainerID

オプション

  • ContainerID −これは、コンテナ内のプロセスの一時停止を解除する必要があるコンテナIDです。

戻り値

実行中のコンテナのContainerID。

sudo docker unpause 07b0b6f434fe

上記のコマンドは、実行中のコンテナー内のプロセスの一時停止を解除します:07b0b6f434fe

出力

上記のコマンドを実行すると、次の結果が生成されます-

Dockerキル

このコマンドは、実行中のコンテナー内のプロセスを強制終了するために使用されます。

構文

docker kill ContainerID

オプション

  • ContainerID −これは、コンテナ内のプロセスを強制終了するために必要なコンテナIDです。

戻り値

実行中のコンテナのContainerID。

sudo docker kill 07b0b6f434fe

上記のコマンドは、実行中のコンテナ内のプロセスを強制終了します 07b0b6f434fe

出力

上記のコマンドを実行すると、次の結果が生成されます-

Docker –コンテナライフサイクル

次の図は、Dockerコンテナのライフサイクル全体を説明しています。

  • 最初は、Dockerコンテナは created 状態。

  • その後、Dockerが実行状態になると、Dockerコンテナは実行状態になります。 run コマンドが使用されます。

  • Docker kill コマンドは、既存のDockerコンテナを強制終了するために使用されます。

  • Docker pause コマンドは、既存のDockerコンテナを一時停止するために使用されます。

  • Docker stop コマンドは、既存のDockerコンテナを一時停止するために使用されます。

  • Docker run コマンドは、コンテナをから戻すために使用されます stopped 状態に running 状態。

次の画像は、の標準および従来のアーキテクチャを示しています。 virtualization

  • サーバーは、複数の仮想マシンをホストするために使用される物理サーバーです。

  • ホストOSは、LinuxやWindowsなどのベースマシンです。

  • ハイパーバイザーは、仮想マシンをホストするために使用されるVMWareまたはWindows HyperVのいずれかです。

  • 次に、ゲストOSとしての既存のハイパーバイザーの上に、仮想マシンとして複数のオペレーティングシステムをインストールします。

  • 次に、各ゲストOS上でアプリケーションをホストします。

次の画像は、Dockerを介して有効化される新世代の仮想化を示しています。さまざまなレイヤーを見てみましょう。

  • サーバーは、複数の仮想マシンをホストするために使用される物理サーバーです。したがって、このレイヤーは同じままです。

  • ホストOSは、LinuxやWindowsなどのベースマシンです。したがって、このレイヤーは同じままです。

  • Dockerエンジンである新世代が登場します。これは、以前はDockerコンテナとして仮想マシンであったオペレーティングシステムを実行するために使用されます。

  • これで、すべてのアプリがDockerコンテナーとして実行されます。

このアーキテクチャの明らかな利点は、ゲストOS用に追加のハードウェアを用意する必要がないことです。すべてがDockerコンテナとして機能します。

Dockerエンジンの良いところは、さまざまなオペレーティングシステムで動作するように設計されていることです。Windowsでのインストールと、LinuxシステムでのすべてのDockerコマンドについてはすでに説明しました。それでは、WindowsOSでのさまざまなDockerコマンドを見てみましょう。

Dockerイメージ

Dockerを実行してみましょう images Windowsホストでのコマンド。

ここから、2つの画像があることがわかります- ubuntu そして hello-world

コンテナの実行

それでは、WindowsDockerホストでコンテナーを実行してみましょう。

コンテナーを実行することで、WindowsホストでUbuntuコンテナーを実行できることがわかります。

すべてのコンテナの一覧表示

Windowsホスト上のすべてのコンテナを一覧表示しましょう。

コンテナの停止

ここで、Windowsホストで実行中のコンテナーを停止しましょう。

したがって、Dockerエンジンは、さまざまなDockerホストに関してはかなり一貫性があり、Linuxと同じようにWindowsでも機能することがわかります。

この章では、Dockerを構成するためのさまざまなオプションについて説明します。

サービスドッカーストップ

このコマンドは、Dockerを停止するために使用されます daemon 処理する。

構文

service docker stop

オプション

なし

戻り値

Dockerプロセスが停止したことを示すメッセージ。

sudo service docker stop

出力

上記のコマンドを実行すると、次の結果が生成されます-

サービスドッカースタート

このコマンドは、Dockerデーモンプロセスを開始するために使用されます。

構文

service docker start

オプション

なし

戻り値

Dockerプロセスが開始されたことを示すメッセージ。

sudo service docker start

出力

上記のコマンドを実行すると、次の結果が生成されます-

デフォルトでは、コンテナを起動するときに、 shell command以下に示すようにコンテナを起動している間。これは、前の章でコンテナを操作していたときに見たものです。

上のスクリーンショットでは、次のコマンドを発行したことがわかります-

sudo docker run –it centos /bin/bash

このコマンドを使用して新しいコンテナーを作成してから、Ctrl + P + Qコマンドを使用してコンテナーを終了しました。これにより、コンテナを終了した後もコンテナが存在することが保証されます。

Dockerでコンテナがまだ存在することを確認できます psコマンド。コンテナから直接出る必要がある場合、コンテナ自体が破壊されます。

今では、コンテナを破壊することなく、コンテナに取り付けてきれいに終了する簡単な方法があります。これを実現する1つの方法は、nsenter コマンド。

実行する前に nsenter コマンド、最初にインストールする必要があります nsenter画像。次のコマンドを使用して実行できます-

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

使用する前に nsenter コマンドでは、コンテナのプロセスIDを取得する必要があります。これは、 nsenterコマンド。Dockerを介してプロセスIDを取得できますinspect command を介してそれをフィルタリングします Pid

上のスクリーンショットに見られるように、私たちは最初に docker ps実行中のコンテナを表示するコマンド。IDがef42a4c5e663の実行中のコンテナーが1つあることがわかります。

次に、Dockerを使用します inspect このコンテナの構成を検査してから、 grepプロセスIDをフィルタリングするコマンド。そして、出力から、プロセスIDが2978であることがわかります。

プロセスIDを取得したので、先に進んで使用できます。 nsenter Dockerコンテナにアタッチするコマンド。

nsenter

この方法では、コンテナを終了せずにコンテナにアタッチできます。

構文

nsenter –m –u –n –p –i –tcontainerIDコマンド

オプション

  • -u 言及するために使用されます Uts namespace

  • -m 言及するために使用されます mount namespace

  • -n 言及するために使用されます network namespace

  • -p 言及するために使用されます process namespace

  • -i ■コンテナをインタラクティブモードで実行します。

  • -t コンテナのI / OストリームをホストOSに接続するために使用されます。

  • containerID −これはコンテナのIDです。

  • Command −これはコンテナ内で実行するコマンドです。

戻り値

なし

sudo nsenter –m –u –n –p –i –t 2978 /bin/bash

出力

出力から、次の点を観察できます。

  • プロンプトがに変わります bash shell を発行するときに直接 nsenter コマンド。

  • 次に、 exitコマンド。今通常あなたが使用しなかった場合nsenterコマンドを実行すると、コンテナは破棄されます。しかし、私たちが実行すると、nsenter コマンドを実行しても、コンテナはまだ稼働しています。

前の章では、Centosなどのさまざまな画像ファイルを見てきました。 Docker hubそこからコンテナをスピンアップできます。例を以下に示します。

Dockerを使用する場合 imagesコマンドを実行すると、システム内の既存の画像を確認できます。上のスクリーンショットから、2つの画像があることがわかります。centos そして nsenter

ただし、Dockerには、独自のDockerイメージを作成する機能もあり、次の機能を使用して作成できます。 Docker Files。Dockerファイルは、イメージの作成方法が記載されたシンプルなテキストファイルです。

次の手順では、Dockerファイルを作成する方法について説明します。

Step 1 −というファイルを作成します Docker File を使用して編集します vim。ファイルの名前は「Dockerfile」で、「D」を大文字にする必要があることに注意してください。

Step 2 −次の手順を使用してDockerファイルをビルドします。

#This is a sample Image 
FROM ubuntu 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install –y nginx 
CMD [“echo”,”Image created”]

上記のファイルについては、以下の点に注意する必要があります。

  • 最初の行「#これはサンプル画像です」はコメントです。あなたはの助けを借りてDockerファイルにコメントを追加することができます# コマンド

  • 次の行はで始まる必要があります FROMキーワード。それはあなたがあなたのイメージをどのベースイメージからベースにしたいのかをdockerに伝えます。この例では、から画像を作成していますubuntu 画像。

  • 次のコマンドは、このイメージを維持しようとしている人です。ここで指定しますMAINTAINER キーワードとメールIDを記載してください。

  • ザ・ RUNコマンドは、イメージに対して命令を実行するために使用されます。この場合、最初にUbuntuシステムを更新してから、nginxサーバーをインストールします。ubuntu 画像。

  • 最後のコマンドは、ユーザーにメッセージを表示するために使用されます。

Step 3−ファイルを保存します。次の章では、イメージの作成方法について説明します。

前の章でDockerファイルを作成しました。今度はDockerファイルをビルドします。Dockerファイルは次のコマンドでビルドできます-

docker build

このコマンドについてもっと学びましょう。

Dockerビルド

この方法により、ユーザーは独自のDockerイメージを作成できます。

構文

docker build  -t ImageName:TagName dir

オプション

  • -t −画像にタグを付けることです

  • ImageName −これは画像に付けたい名前です。

  • TagName −これは画像に付けたいタグです。

  • Dir −Dockerファイルが存在するディレクトリ。

戻り値

なし

sudo docker build –t myimage:0.1.

ここに、 myimage 画像に付けている名前です 0.1 画像に付けるタグ番号です。

Dockerファイルは現在の作業ディレクトリにあるため、「。」を使用しました。コマンドの最後に、現在の作業ディレクトリを示します。

出力

マシン上にローカルで使用可能なイメージがないため、出力から、UbuntuイメージがDockerHubからダウンロードされることが最初にわかります。

最後に、ビルドが完了すると、必要なすべてのコマンドがイメージで実行されます。

正常にビルドされたメッセージと新しいイメージのIDが表示されます。Dockerを実行するときimages command、その後、新しい画像を表示できるようになります。

これで、新しいイメージからコンテナを構築できます。

パブリックリポジトリは、他のすべての人が使用できるDockerイメージをホストするために使用できます。例として、DockerHubで使用できるイメージがあります。Centos、Ubuntu、Jenkinsなどのほとんどの画像は、すべて公開されています。Docker Hubのパブリックリポジトリにイメージを公開することで、イメージを利用できるようにすることもできます。

この例では、 myimage「Dockerファイルの構築」の章で構築されたリポジトリを作成し、そのイメージをDockerHubにアップロードします。まず、Dockerホスト上のイメージを確認して、Dockerレジストリに何をプッシュできるかを確認しましょう。

ここに、 myimage:0.1「Dockerファイルの構築」の章の一部として作成されたイメージ。これを使用して、Dockerパブリックリポジトリにアップロードしましょう。

次の手順では、画像をパブリックリポジトリにアップロードする方法について説明します。

Step 1− Docker Hubにログインし、リポジトリを作成します。これは、画像が保存されるリポジトリです。に移動https://hub.docker.com/ 資格情報を使用してログインします。

Step 2 −上の画面で「リポジトリの作成」ボタンをクリックし、名前でリポジトリを作成します demorep。リポジトリの可視性が公開されていることを確認してください。

リポジトリが作成されたら、メモします pull リポジトリに添付されているコマンド。

ザ・ pull リポジトリで使用するコマンドは次のとおりです-

docker pull demousr/demorep

Step 3−ここでDockerホストに戻ります。ここでタグを付ける必要がありますmyimageDockerHubで作成された新しいリポジトリに移動します。Dockerを介してこれを行うことができますtag command

これについてもっと学びます tag command この章の後半。

Step 4− Docker loginコマンドを発行して、コマンドプロンプトからDockerHubリポジトリにログインします。Docker loginコマンドは、DockerHubリポジトリへのユーザー名とパスワードの入力を求めます。

Step 5−イメージにタグが付けられたら、今度はイメージをDockerHubリポジトリにプッシュします。Dockerを介してこれを行うことができますpushコマンド。このコマンドの詳細については、この章の後半で説明します。

dockerタグ

この方法では、関連するリポジトリに画像をタグ付けできます。

構文

docker tag imageID Repositoryname

オプション

  • imageID −これは、リポジトリにタグ付けする必要があるImageIDです。

  • Repositoryname −これは、ImageIDにタグを付ける必要があるリポジトリ名です。

戻り値

なし

sudo docker tag ab0c1d3744dd demousr/demorep:1.0

出力

上記の例の出力例を以下に示します。

Dockerプッシュ

この方法では、イメージをDockerHubにプッシュできます。

構文

docker push Repositoryname

オプション

  • Repositoryname −これはDockerHubにプッシュする必要があるリポジトリ名です。

戻り値

DockerHubにプッシュされたリポジトリの長いID。

sudo docker push demousr/demorep:1.0

出力

Docker Hubページに戻ってリポジトリに移動すると、リポジトリにタグ名が表示されます。

それでは、Dockerホストにアップロードしたリポジトリをプルしてみましょう。まず画像を削除しましょう、myimage:0.1 そして demousr/demorep:1.0、ローカルDockerホストから。Dockerを使いましょうpull command DockerHubからリポジトリをプルします。

上のスクリーンショットから、Dockerが pull コマンドは、Docker Hubから新しいリポジトリを取得し、それをマシンに配置しました。

Dockerでは、コンテナー自体がアプリケーションをポートで実行できます。コンテナーを実行するときに、ポート番号を介してコンテナー内のアプリケーションにアクセスする場合は、コンテナーのポート番号をDockerホストのポート番号にマップする必要があります。これを実現する方法の例を見てみましょう。

この例では、DockerHubからJenkinsコンテナーをダウンロードします。次に、Jenkinsのポート番号をDockerホストのポート番号にマップします。

Step 1 −まず、DockerHubで簡単なサインアップを行う必要があります。

Step 2 −サインアップすると、DockerHubにログインします。

Step 3 −次に、Jenkinsの画像を参照して見つけましょう。

Step 4 −同じページを下にスクロールすると、Dockerが表示されます。 pullコマンド。これは、JenkinsイメージをローカルのUbuntuサーバーにダウンロードするために使用されます。

Step 5 −次にUbuntuサーバーに移動し、コマンドを実行します−

sudo docker pull jenkins

Step 6 −コンテナによって公開されているポートを理解するには、Dockerを使用する必要があります inspect command 画像を検査します。

これについてもっと学びましょう inspect コマンド。

dockerinspect

このメソッドを使用すると、コンテナまたはイメージに関する低レベルの情報を返すことができます。

構文

docker inspect Container/Image

オプション

  • Container/Image −検査するコンテナまたは画像

戻り値

JSON形式の画像またはコンテナーの低レベル情報。

sudo docker inspect jenkins

出力

の出力 inspectコマンドはJSON出力を提供します。出力を観察すると、「ExposedPorts」のセクションがあり、2つのポートが言及されていることがわかります。1つはdata port 8080のと他は control port 50000の。

Jenkinsを実行してポートをマップするには、Dockerを変更する必要があります runコマンドを実行し、ポートマッピングを指定する「p」オプションを追加します。したがって、次のコマンドを実行する必要があります-

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

ポート番号マッピングの左側は、マップするDockerホストポートであり、右側はDockerコンテナのポート番号です。

ブラウザを開いてポート8080のDockerホストに移動すると、Jenkinsが起動して実行されていることがわかります。

独自のプライベートリポジトリが必要になる場合があります。DockerHubでリポジトリをホストしたくない場合があります。このために、Dockerからのリポジトリコンテナ自体があります。レジストリ用のコンテナをダウンロードして使用する方法を見てみましょう。

Step 1 −Dockerを使用する runプライベートレジストリをダウンロードするコマンド。これは、次のコマンドを使用して実行できます。

sudo docker run –d –p 5000:5000 –-name registry registry:2

上記のコマンドについては、以下の点に注意してください。

  • Registry プライベートリポジトリをホストするために使用できるDockerによって管理されるコンテナです。

  • コンテナによって公開されるポート番号は5000です。したがって、 –p command、ローカルホストの5000ポート番号に同じポート番号をマッピングしています。

  • Dockerホストで区別するために、レジストリコンテナに「2」のタグを付けています。

  • ザ・ –dオプションは、コンテナをデタッチモードで実行するために使用されます。これは、コンテナをバックグラウンドで実行できるようにするためです。

Step 2 −やってみましょう docker ps レジストリコンテナが実際に実行されていることを確認します。

レジストリコンテナが実際に実行されていることを確認しました。

Step 3−次に、既存の画像の1つにタグを付けて、ローカルリポジトリにプッシュできるようにします。この例では、centos ローカルで利用可能な画像。プライベートリポジトリにタグを付け、のタグ名を追加します。 centos

sudo docker tag 67591570dd29 localhost:5000/centos

上記のコマンドについては、以下の点に注意してください。

  • 67591570dd29 のイメージIDを参照します centos 画像。

  • localhost:5000 プライベートリポジトリの場所です。

  • リポジトリ名に次のタグを付けています centos 私たちのプライベートリポジトリにあります。

Step 4 −それでは、Dockerを使用しましょう push リポジトリをプライベートリポジトリにプッシュするコマンド。

sudo docker push localhost:5000/centos

ここでは、 centos でホストされているプラ​​イベートリポジトリへの画像 localhost:5000

Step 5 −では、ローカルイメージを削除しましょう centos を使用して docker rmiコマンド。その後、必要なものをダウンロードできますcentos 私たちのプライベートリポジトリからの画像。

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Step 6 −今は何もありません centos ローカルマシン上のイメージで、次のDockerを使用できるようになりました pull プルするコマンド centos 私たちのプライベートリポジトリからの画像。

sudo docker pull localhost:5000/centos

ここでは、 centos でホストされているプラ​​イベートリポジトリへの画像 localhost:5000

システムに画像が表示されている場合は、 centos 画像も。

Dockerファイルを使用して独自のカスタムイメージを構築する方法については、すでに学習しました。次に、コンテナの構築に使用できるWebサーバーイメージを構築する方法を見てみましょう。

この例では、Ubuntu上のApacheWebサーバーを使用してイメージを構築します。以下の手順に従って、WebサーバーのDockerファイルを作成しましょう。

Step 1−最初のステップは、Dockerファイルをビルドすることです。使ってみようvim 次の情報を使用してDockerファイルを作成します。

FROM ubuntu 
RUN apt-get update 
RUN apt-get install –y apache2 
RUN apt-get install –y apache2-utils 
RUN apt-get clean 
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

上記の記述については、以下の点に注意する必要があります。

  • まず、Ubuntuベースイメージからイメージを作成します。

  • 次に、RUNコマンドを使用して、Ubuntuシステム上のすべてのパッケージを更新します。

  • 次に、RUNコマンドを使用して、イメージにapache2をインストールします。

  • 次に、RUNコマンドを使用して、必要なユーティリティapache2パッケージをイメージにインストールします。

  • 次に、RUNコマンドを使用して、システムから不要なファイルを削除します。

  • EXPOSEコマンドは、コンテナー内のApacheのポート80をDockerホストに公開するために使用されます。

  • 最後に、CMDコマンドを使用して、バックグラウンドでapache2を実行します。

ファイルの詳細が入力されたので、ファイルを保存するだけです。

Step 2 −Dockerを実行します buildDockerファイルをビルドするコマンド。次のコマンドを使用して実行できます-

sudo docker build –t=”mywebserver” .

画像に次のタグを付けています mywebserver。イメージがビルドされると、ファイルがビルドされたことを示すメッセージが表示されます。

Step 3− Webサーバーファイルが作成されたので、次にイメージからコンテナーを作成します。Dockerでこれを行うことができますrun コマンド。

sudo docker run –d –p 80:80 mywebserver

上記のコマンドについては、以下の点に注意してください。

  • コンテナによって公開されるポート番号は80です。したがって、 –p コマンドを実行すると、ローカルホストの80ポート番号に同じポート番号がマッピングされます。

  • ザ・ –dオプションは、コンテナをデタッチモードで実行するために使用されます。これは、コンテナをバックグラウンドで実行できるようにするためです。

WebブラウザでDockerホストのポート80にアクセスすると、Apacheが稼働していることがわかります。

Dockerには多数の命令コマンドがあります。これらは、Dockerファイルに配置されるコマンドです。利用可能なものを見てみましょう。

CMD命令

このコマンドは、コンテナの実行時に実行時にコマンドを実行するために使用されます。

構文

CMD command param1

オプション

  • command −これはコンテナの起動時に実行するコマンドです。

  • param1 −これはコマンドに入力されたパラメータです。

戻り値

コマンドはそれに応じて実行されます。

この例では、単純なものを入力します Hello World Dockerファイルにエコーし、イメージを作成して、そこからコンテナーを起動します。

Step 1 −次のコマンドを使用してDockerファイルをビルドします−

FROM ubuntu 
MAINTAINER [email protected] 
CMD [“echo” , “hello world”]

ここでは、CMDは印刷に使用されます hello world

Step 2 −Dockerを使用してイメージをビルドします build コマンド。

Step 3 −イメージからコンテナを実行します。

エントリーポイント

このコマンドは、コンテナの実行時にコマンドを実行するためにも使用できます。ただし、ENTRYPOINTコマンドを使用すると、より柔軟に対応できます。

構文

ENTRYPOINT command param1

オプション

  • command −これはコンテナの起動時に実行するコマンドです。

  • param1 −これはコマンドに入力されたパラメータです。

戻り値

コマンドはそれに応じて実行されます。

ENTRYPOINTについてさらに理解するために、例を見てみましょう。この例では、単純なものを入力しますecho Dockerファイルでコマンドを実行し、イメージを作成して、そこからコンテナーを起動します。

Step 1 −次のコマンドを使用してDockerファイルをビルドします−

FROM ubuntu 
MAINTAINER [email protected] 
ENTRYPOINT [“echo”]

Step 2 −Dockerを使用してイメージをビルドします build コマンド。

Step 3 −イメージからコンテナを実行します。

ENV

このコマンドは、コンテナに環境変数を設定するために使用されます。

構文

ENV key value

オプション

  • Key −これは環境変数のキーです。

  • value −これは環境変数の値です。

戻り値

コマンドはそれに応じて実行されます。

この例では、単純なものを入力します echo Dockerファイルでコマンドを実行し、イメージを作成して、そこからコンテナーを起動します。

Step 1 −次のコマンドを使用してDockerファイルをビルドします−

FROM ubuntu 
MAINTAINER [email protected] 
ENV var1=Tutorial var2=point

Step 2 −Dockerを使用してイメージをビルドします build コマンド。

Step 3 −イメージからコンテナを実行します。

Step 4 −最後に、 env 環境変数を表示するコマンド。

WORKDIR

このコマンドは、コンテナの作業ディレクトリを設定するために使用されます。

構文

WORKDIR dirname

オプション

  • dirname−新しい作業ディレクトリ。ディレクトリが存在しない場合は追加されます。

戻り値

コマンドはそれに応じて実行されます。

この例では、単純なものを入力します echo Dockerファイルでコマンドを実行し、イメージを作成して、そこからコンテナーを起動します。

Step 1 −次のコマンドを使用してDockerファイルをビルドします−

FROM ubuntu 
MAINTAINER [email protected] 
WORKDIR /newtemp 
CMD pwd

Step 2 −Dockerを使用してイメージをビルドします build コマンド。

Step 3 −イメージからコンテナを実行します。

コンテナリンクを使用すると、複数のコンテナを相互にリンクできます。ポートを公開するよりも優れたオプションです。ステップバイステップで、それがどのように機能するかを学びましょう。

Step 1 − Jenkinsを使用して、Jenkinsイメージがまだ存在しない場合はダウンロードします pull コマンド。

Step 2 −イメージが利用可能になったら、コンテナーを実行しますが、今回は、を使用してコンテナーに名前を指定できます。 –-nameオプション。これは私たちになりますsource container

Step 3−次に、宛先コンテナーを起動しますが、今回は、ソースコンテナーとリンクします。宛先コンテナには、標準のUbuntuイメージを使用します。

あなたがするとき docker ps、両方のコンテナが実行されているのがわかります。

Step 4 −次に、受け取りコンテナに取り付けます。

次に、を実行します envコマンド。ソースコンテナとリンクするための新しい変数に気付くでしょう。

ストレージドライバー

Dockerには複数のストレージドライバーがあり、基盤となるストレージデバイスを操作できます。次の表に、さまざまなストレージドライバーと、ストレージドライバーに使用されるテクノロジを示します。

技術 ストレージドライバー
OverlayFS オーバーレイまたはoverlay2
AUFS aufs
Btrfs brtfs
デバイスマネージャ デバイスマネージャ
VFS vfs
ZFS zfs

ここで、さまざまなストレージドライバーを使用するいくつかのインスタンスについて説明します-

AUFS

  • これは安定したドライバーです。本番環境に対応したアプリケーションに使用できます。

  • メモリ使用量が多く、コンテナのDockerエクスペリエンスをスムーズにするのに適しています。

  • このドライバーに関連する書き込みの多いアクティビティがあり、これを考慮する必要があります。

  • Platform as aServiceタイプの作業であるシステムに適しています。

デバイスマッパー

  • これは安定したドライバーです。スムーズなDockerエクスペリエンスを保証します。

  • このドライバーは、ラボでアプリケーションをテストするのに適しています。

  • このドライバーは、Linuxカーネルの主な機能と一致しています。

Btrfs

  • このドライバーは、Linuxカーネルの主な機能と一致しています。

  • このドライバーに関連する書き込みの多いアクティビティがあり、これを考慮する必要があります。

  • このドライバーは、複数のビルドプールを維持する場合に適しています。

Ovelay

  • これは安定したドライバーであり、主なLinuxカーネル機能と一致しています。

  • それは良いメモリ使用量を持っています。

  • このドライバーは、ラボでアプリケーションをテストするのに適しています。

ZFS

  • これは安定したドライバーであり、ラボでアプリケーションをテストするのに適しています。

  • これは、Platform-as-a-Serviceタイプの作業であるシステムに適しています。

使用されているストレージドライバを確認するには、 docker info コマンド。

構文

docker info

オプション

なし

戻り値

このコマンドは、DockerホストにインストールされているDockerコンポーネントに関するすべての相対情報を提供します。

sudo docker info

出力

次の出力は、使用されるメインドライバーが aufs ドライバとルートディレクトリが保存されていること /var/lib/docker/aufs

データ量

Dockerには、コンテナー間で共有できる個別のボリュームがあります。これらはとして知られていますdata volumes。データ量の特徴のいくつかは次のとおりです。

  • これらは、コンテナの作成時に初期化されます。
  • それらは、多くのコンテナ間で共有および再利用できます。
  • ボリューム自体への変更は直接行うことができます。
  • コンテナが削除された後も存在します。

Jenkinsコンテナを見てみましょう。やってみましょうdocker inspectこの画像の詳細を表示します。次のコマンドを発行して、の出力を書き込むことができます。docker inspect コマンドをテキストファイルに追加し、それに応じてファイルを表示します。

sudo docker inspect Jenkins > tmp.txt

を使用してテキストファイルを表示する場合 more command、としてエントリが表示されます JENKINS_HOME=/var/Jenkins_home

これは、Jenkinsイメージを介してコンテナ内で行われるマッピングです。

ここで、コンテナー内のボリュームをローカルボリュームにマップしたいとします。次に、コンテナーを起動するときに–vオプションを指定する必要があります。例を以下に示します-

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

–vオプションは、コンテナー内のボリュームをマップするために使用されます。 /var/jenkins_home Dockerホスト上の場所に /home/demo

今、あなたが行くなら /home/demo コンテナを起動した後のDockerホスト上の場所に、そこに存在するすべてのコンテナファイルが表示されます。

コンテナのストレージドライバの変更

コンテナーに使用されるストレージドライバーに変更する場合は、コンテナーの起動時に変更できます。これは、を使用して行うことができます–volume-driver 使用時のパラメータ docker runコマンド。例を以下に示します-

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

ザ・ –volume-driver オプションは、コンテナーの別のストレージドライバーを指定するために使用されます。

ドライバが変更されたことを確認するには、まず、 docker ps実行中のコンテナーを確認し、コンテナーIDを取得するコマンド。したがって、最初に次のコマンドを発行します-

sudo docker ps

次に、 docker inspect コンテナに対して、コマンドを使用して出力をテキストファイルに入れます。

sudo docker inspect 9bffb1bfebee > temp.txt

テキストファイルを参照して、次の行に移動すると VolumeDriver、ドライバー名が変更されていることがわかります。

ボリュームの作成

ボリュームは、を使用して事前に作成できます dockerコマンド。このコマンドについてもっと学びましょう。

構文

docker volume create –-name=volumename –-opt options

オプション

  • name −これは作成する必要のあるボリュームの名前です。

  • opt −これらは、ボリュームの作成中に提供できるオプションです。

戻り値

このコマンドは、作成されたボリュームの名前を出力します。

sudo docker volume create –-name = demo –opt o = size = 100m

上記のコマンドでは、サイズが100MBで、デモという名前のボリュームを作成しています。

出力

上記のコマンドの出力を以下に示します-

すべてのボリュームを一覧表示

すべてを一覧表示することもできます docker volumesdocker host。このコマンドの詳細を以下に示します-

構文

docker volume ls

オプション

なし

戻り値

コマンドは、上のすべてのボリュームを出力します docker host

sudo docker volume ls

出力

上記のコマンドの出力を以下に示します-

Dockerは、コンテナーが他のコンテナーやDockerホストとも通信できるように、ネットワークの側面を処理します。あなたがするならifconfigDockerホストに、Dockerイーサネットアダプターが表示されます。このアダプターは、DockerがDockerホストにインストールされたときに作成されます。

これは、DockerホストとLinuxホストの間のブリッジです。次に、Dockerのネットワークに関連するいくつかのコマンドを見てみましょう。

すべてのDockerネットワークの一覧表示

このコマンドを使用して、ホスト上のDockerに関連付けられているすべてのネットワークを一覧表示できます。

構文

docker network ls

オプション

なし

戻り値

このコマンドは、Dockerホスト上のすべてのネットワークを出力します。

sudo docker network ls

出力

上記のコマンドの出力を以下に示します。

Dockerネットワークの検査

Dockerに関連付けられたネットワークの詳細を確認したい場合は、Dockerを使用できます network inspect コマンド。

構文

docker network inspect networkname

オプション

  • networkname −これは検査する必要のあるネットワークの名前です。

戻り値

このコマンドは、ネットワークに関するすべての詳細を出力します。

sudo docker network inspect bridge

出力

上記のコマンドの出力を以下に示します-

次に、コンテナを実行して、ネットワークを再度検査するとどうなるかを見てみましょう。次のコマンドでUbuntuコンテナを起動してみましょう-

sudo docker run –it ubuntu:latest /bin/bash

次のコマンドでネットワーク名を調べると、コンテナがブリッジに接続されていることがわかります。

sudo docker network inspect bridge

独自の新しいネットワークの作成

コンテナを起動する前に、Dockerでネットワークを作成できます。これは、次のコマンドで実行できます-

構文

docker network create –-driver drivername name

オプション

  • drivername −これはネットワークドライバに使用される名前です。

  • name −これはネットワークに付けられた名前です。

戻り値

このコマンドは、新しいネットワークの長いIDを出力します。

sudo docker network create –-driver bridge new_nw

出力

上記のコマンドの出力を以下に示します-

これで、コンテナの起動時に新しいネットワークを接続できます。それでは、次のコマンドでUbuntuコンテナを起動してみましょう-

sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

そして、次のコマンドを使用してネットワークを検査すると、ネットワークに接続されているコンテナが表示されます。

sudo docker network inspect new_nw

Node.jsは、サーバー側アプリケーションの開発に使用されるJavaScriptフレームワークです。これは、さまざまなオペレーティングシステムで実行するために開発されたオープンソースフレームワークです。Node.jsは開発用の人気のあるフレームワークであるため、DockerはNode.jsアプリケーションのサポートも保証しています。

Node.jsのDockerコンテナを起動して実行するためのさまざまな手順を確認します。

Step 1−最初のステップは、DockerHubからイメージをプルすることです。Docker Hubにログインすると、以下に示すようにNode.jsのイメージを検索して表示できます。検索ボックスに「ノード」と入力し、検索結果に表示されるノード(公式)リンクをクリックするだけです。

Step 2 −Dockerが表示されます pull DockerHubのリポジトリの詳細にあるノードのコマンド。

Step 3 − Dockerホストで、Dockerを使用します pull 上記のコマンドを使用して、DockerHubから最新のノードイメージをダウンロードします。

一度 pull が完了したら、次のステップに進むことができます。

Step 4 − Dockerホストで、を使用してみましょう vimエディターを作成し、Node.jsサンプルファイルを1つ作成します。このファイルでは、コマンドプロンプトに「HelloWorld」を表示する簡単なコマンドを追加します。

Node.jsファイルに、次のステートメントを追加しましょう-

Console.log(‘Hello World’);

これにより、Node.jsを実行すると、「HelloWorld」フレーズが出力されます。

必ずファイルを保存してから、次の手順に進んでください。

Step 5 − Node Dockerコンテナを使用してNode.jsスクリプトを実行するには、次のステートメントを実行する必要があります−

sudo docker run –it –rm –name = HelloWorld –v “$PWD”:/usr/src/app 
   –w /usr/src/app node node HelloWorld.js

上記のコマンドについては、以下の点に注意してください。

  • ザ・ –rm オプションは、実行後にコンテナを削除するために使用されます。

  • 「HelloWorld」というコンテナに名前を付けています。

  • コンテナ内のボリュームをマッピングすることに言及しています。 /usr/src/app現在の作業ディレクトリに移動します。これは、ノードコンテナがDockerホストの作業ディレクトリにあるHelloWorld.jsスクリプトを取得するために行われます。

  • ザ・ –w オプションは、Node.jsが使用する作業ディレクトリを指定するために使用されます。

  • 最初のノードオプションは、ノードイメージの実行を指定するために使用されます。

  • 2番目のノードオプションは、ノードコンテナでnodeコマンドを実行することを示すために使用されます。

  • 最後に、スクリプトの名前について説明します。

次に、次の出力が得られます。また、出力から、Nodeコンテナーがコンテナーとして実行され、HelloWorld.jsスクリプトが実行されたことがはっきりとわかります。

MongoDBは、多くの現代のWebアプリケーションで使用されている有名なドキュメント指向データベースです。MongoDBは開発用の人気のあるデータベースであるため、DockerはMongoDBを確実にサポートしています。

ここで、MongoDBのDockerコンテナーを起動して実行するためのさまざまな手順を確認します。

Step 1−最初のステップは、DockerHubからイメージをプルすることです。Docker Hubにログインすると、以下に示すようにMongoのイメージを検索して表示できます。検索ボックスにMongoと入力し、検索結果に表示されるMongo(公式)リンクをクリックするだけです。

Step 2 −Dockerが表示されます pull DockerHubのリポジトリの詳細にあるMongoのコマンド。

Step 3 − Dockerホストで、Dockerを使用します pull 上記のコマンドを使用して、DockerHubから最新のMongoイメージをダウンロードします。

Step 4− Mongoのイメージができたので、最初にMongoDBのインスタンスとなるMongoDBコンテナーを実行しましょう。このために、次のコマンドを発行します-

sudo docker run -it -d mongo

上記のコマンドについて、以下の点に注意してください。

  • ザ・ –it オプションは、コンテナをインタラクティブモードで実行するために使用されます。

  • ザ・ –d オプションは、コンテナをデーモンプロセスとして実行するために使用されます。

  • そして最後に、Mongoイメージからコンテナーを作成しています。

その後、発行することができます docker ps 実行中のコンテナを表示するコマンド-

次の点に注意してください-

  • コンテナの名前は tender_poitras。コンテナを起動するとコンテナの名前が変わり続けるため、この名前は異なります。ただし、起動したコンテナをメモしてください。

  • 次に、それが実行されているポート番号にも注意してください。27017のTCPポートでリッスンしています。

Step 5−次に、MongoDBデータベースへの接続に使用されるクライアントとして機能する別のコンテナーを起動してみましょう。これに対して次のコマンドを発行しましょう-

sudo docker run –it –link=tender_poitras:mongo mongo /bin/bash

上記のコマンドについて、以下の点に注意してください。

  • ザ・ –it オプションは、コンテナをインタラクティブモードで実行するために使用されます。

  • 現在、新しいコンテナーを、すでに起動されているMongoDBサーバーコンテナーにリンクしています。ここで、すでに起動されているコンテナの名前を指定する必要があります。

  • 次に、Mongoコンテナーをクライアントとして起動してから、 bin/bash 新しいコンテナのシェル。

これで、新しいコンテナに移動します。

Step 6 −を実行します env 新しいコンテナーでコマンドを実行して、MongoDBサーバーコンテナーに接続する方法の詳細を確認します。

Step 6−次に、クライアントコンテナからMongoDBサーバーに接続します。これは、次のコマンドで実行できます-

mongo 172.17.0.2:27017

上記のコマンドについては、以下の点に注意する必要があります。

  • ザ・ mongo コマンドはクライアントです mongo MongoDBデータベースへの接続に使用されるコマンド。

  • IPとポート番号は、使用時に取得するものです。 env コマンド。

コマンドを実行すると、MongoDBデータベースに接続されます。

その後、コマンドプロンプトで任意のMongoDBコマンドを実行できます。この例では、次のコマンドを実行しています-

use demo

このコマンドは、データベース名に切り替えるために使用されるMongoDBコマンドです。 demo。データベースが利用できない場合は、作成されます。

これで、クライアントとサーバーのMongoDBコンテナーが正常に作成されました。

NGINXは、サーバー側アプリケーションの開発に使用される人気のある軽量Webアプリケーションです。これは、さまざまなオペレーティングシステムで実行するために開発されたオープンソースのWebサーバーです。以来nginx は開発用の人気のあるWebサーバーであり、Dockerは nginx

これで、Dockerコンテナを取得するためのさまざまな手順が表示されます。 nginx 稼働中。

Step 1−最初のステップは、DockerHubからイメージをプルすることです。Docker Hubにログインすると、次の画像を検索して表示できます。nginx以下に示すように。検索ボックスにnginxと入力して、nginx (公式)検索結果に表示されるリンク。

Step 2 −Dockerが表示されます pull のコマンド nginx DockerHubのリポジトリの詳細にあります。

Step 3 − Dockerホストで、Dockerを使用します pull 上記のコマンドを使用して、DockerHubから最新のnginxイメージをダウンロードします。

Step 4 −それでは、 nginx 次のコマンドを使用してコンテナ。

sudo docker run –p 8080:80 –d nginx

上のポートを公開しています nginx Dockerホストのポート80からポート8080へのサーバー。

コマンドを実行すると、URLを参照すると、次の出力が表示されます。 http://dockerhost:8080。これは、nginx コンテナが稼働しています。

Step 5 −で簡単なWebページをホストできる別の例を見てみましょう。 ngnixコンテナ。この例では、単純なものを作成しますHelloWorld.html ファイルを作成してホストします nginx コンテナ。

まず、というHTMLファイルを作成しましょう。 HelloWorld.html

HTMLファイルにHelloWorldの簡単な行を追加しましょう。

次に、次のDockerコマンドを実行してみましょう。

sudo docker run –p 8080:80 –v 
   “$PWD”:/usr/share/nginx/html:ro –d nginx

上記のコマンドについては、以下の点に注意してください。

  • 上のポートを公開しています nginx Dockerホストのポート80からポート8080へのサーバー。

  • 次に、ボリュームをコンテナにアタッチします。 /usr/share/nginx/html現在の作業ディレクトリに移動します。これは、HelloWorld.htmlファイルが保存されている場所です。

ここで、URLを参照すると http://dockerhost:8080/HelloWorld.html 期待どおりに次の出力が得られます-

導入の章では、WindowsへのDockerツールボックスのインストールについて説明しました。Dockerツールボックスは、DockerコンテナーをWindowsおよびMacOSで実行できるように開発されています。Windowsのツールボックスのサイトはhttps://docs.docker.com/docker-for-windows/

Windowsの場合、Hyper-Vが有効になっているWindows10またはWindowsServer2016が必要です。

ツールボックスは次のコンポーネントで構成されています-

  • Docker Engine −これは、Dockerコンテナを実行するために使用されるベースエンジンまたはDockerデーモンとして使用されます。

  • Docker Machine −Dockerマシンコマンドを実行するため。

  • Docker Compose Dockercomposeコマンドを実行するため。

  • Kinematic −これはWindowsおよびMacOS用に構築されたDockerGUIです。

  • Oracle virtualbox

ここで、Dockerツールボックスで可能なさまざまなタイプのアクティビティについて説明します。

Powershellで実行

Windows 10のDockerツールボックスを使用すると、Dockerコマンドをオフに実行できるようになりました powershell。WindowsでPowerShellを開き、Dockerバージョンのコマンドを入力すると、インストールされているDockerバージョンに必要なすべての詳細が表示されます。

画像のプルとコンテナの実行

Linuxの場合と同じように、Docker Hubからイメージをプルして、PowerShellでコンテナーを実行することもできるようになりました。次の例は、Ubuntuイメージのダウンロードとイメージからのコンテナーの実行を簡単に示しています。

最初のステップは、Dockerを使用することです pull DockerHubからUbuntuイメージをプルするコマンド。

次のステップは、以下を使用してDockerイメージを実行することです run コマンド-

docker run –it ubuntu /bin/bash

コマンドがLinuxの場合と同じであることがわかります。

Kitematic

これは、Windows上のDockerに相当するGUIです。このGUIを開くには、タスクバーに移動し、Dockerアイコンを右クリックして、Kitematicを開くことを選択します。

KitematicGUIをダウンロードするように求められます。ダウンロードしたら、コンテンツを解凍するだけです。と呼ばれるファイルがありますKitematic.exe。このexeファイルをダブルクリックしてGUIインターフェイスを開きます。

次に、Docker Hubにログインし、GUIから入力するように求められます。必要なユーザー名とパスワードを入力し、[ログイン]ボタンをクリックするだけです。

ログインすると、インターフェースの左側でシステムにダウンロードされたすべての画像を見ることができます。

右側には、DockerHubで利用可能なすべてのイメージがあります。

Kitematicを使用してDockerHubからノードイメージをダウンロードする方法を理解するための例を見てみましょう。

Step 1 −検索条件にノードのキーワードを入力します。

Step 2 −をクリックします create公式ノード画像のボタン。次に、ダウンロード中の画像が表示されます。

イメージがダウンロードされると、ノードコンテナの実行が開始されます。

Step 3 −に行く場合 settings タブをクリックすると、以下に示すように、さらに設定オプションにドリルダウンできます。

  • General settings −このタブでは、コンテナに名前を付けたり、パス設定を変更したり、コンテナを削除したりできます。

  • Ports−ここでは、さまざまなポートマッピングを確認できます。必要に応じて、独自のポートマッピングを作成できます。

  • Volumes −ここでは、さまざまなボリュームマッピングを確認できます。

  • Advanced −コンテナの詳細設定が含まれています。

ASP.Netは、サーバー側アプリケーションを開発するためにMicrosoftが提供する標準のWeb開発フレームワークです。ASP.Netは開発のためにかなり長い間存在していたので、DockerはASP.Netをサポートしていることを確認しました。

この章では、ASP.Net用のDockerコンテナーを起動して実行するためのさまざまな手順を説明します。

前提条件

ASP.Netを実行するには、最初に次の手順を実行する必要があります。

Step 1 −これはWindowsシステムでのみ実行できるため、最初にWindows10またはWindowServer2016のいずれかを使用していることを確認する必要があります。

Step 2−次に、Hyper-Vがあり、コンテナーがWindowsシステムにインストールされていることを確認します。Hyper-Vとコンテナーをインストールするには、[Windowsの機能をオンまたはオフにする]に移動します。次に、Hyper-Vオプションとコンテナーがチェックされていることを確認し、[OK]ボタンをクリックします。

この操作の後、システムの再起動が必要になる場合があります。

Step 3 −次に、次のPowershellコマンドを使用してインストールする必要があります 1.13.0rc4Dockerのバージョン。次のコマンドはこれをダウンロードして一時的な場所に保存します。

Invoke-WebRequest "https://test.docker.com/builds/Windows/x86_64/docker-1.13.0-
   rc4.zip" -OutFile "$env:TEMP\docker-1.13.0-rc4.zip" –UseBasicParsing

Step 4 −次に、以下を使用してアーカイブを拡張する必要があります powershell コマンド。

Expand-Archive -Path "$env:TEMP\docker-1.13.0-rc4.zip" -DestinationPath $env:ProgramFiles

Step 5 −次に、以下を使用してDockerファイルを環境変数に追加する必要があります powershell コマンド。

$env:path += ";$env:ProgramFiles\Docker"

Step 6 −次に、以下を使用してDockerデーモンサービスを登録する必要があります。 powershell コマンド。

dockerd --register-service

Step 7 −最後に、開始できます docker daemon 次のコマンドを使用します。

Start-Service Docker

使用 docker version コマンドで powershell を確認するには docker daemon 仕事中

ASP.Netコンテナのインストール

ASP.Netコンテナをインストールする方法を見てみましょう。

Step 1−最初のステップは、DockerHubからイメージをプルすることです。Docker Hubにログインすると、次の画像を検索して表示できます。Microsoft/aspnet以下に示すように。入力するだけですasp 検索ボックスで、検索結果に表示されるMicrosoft / aspnetリンクをクリックします。

Step 2 −Dockerが表示されます pull DockerHubのリポジトリの詳細にあるASP.Netのコマンド。

Step 3 − Docker Hostに移動し、Dockerを実行します pullmicrosoft / aspnetイメージのコマンド。画像はかなり大きく、4.2GBに近いことに注意してください。

Step 4 −次の場所に移動します https://github.com/Microsoft/aspnet-docker Gitリポジトリ全体をダウンロードします。

Step 5 −というフォルダを作成します AppCドライブで。次に、から内容をコピーします4.6.2/sampleCドライブへのフォルダ。サンプルディレクトリのDockerファイルに移動し、次のコマンドを発行します-

docker build –t aspnet-site-new –build-arg site_root=/

上記のコマンドについては、以下の点に注意してください。

  • と呼ばれる新しいイメージを構築します aspnet-site-new Dockerファイルから。
  • ルートパスはlocalpathフォルダに設定されます。

Step 6−コンテナを実行する時が来ました。次のコマンドを使用して実行できます-

docker run –d –p 8000:80 –name my-running-site-new aspnet-site-new

Step 7−これで、DockerコンテナでIISが実行されます。DockerコンテナのIPアドレスを見つけるには、Dockerを発行しますinspect 以下に示すコマンド。

Docker Cloudは、Dockerが提供するサービスであり、以下の操作を実行できます。

  • Nodes − Docker CloudをAzureやAWSなどの既存のクラウドプロバイダーに接続して、これらの環境でコンテナーを起動できます。

  • Cloud Repository −独自のリポジトリを保存できる場所を提供します。

  • Continuous Integration −接続する Github 継続的インテグレーションパイプラインを構築します。

  • Application Deployment −インフラストラクチャとコンテナを展開およびスケーリングします。

  • Continuous Deployment −展開を自動化できます。

入門

Docker Cloudの使用を開始するには、次のリンクにアクセスできます- https://cloud.docker.com/

ログインすると、次の基本的なインターフェイスが提供されます-

クラウドプロバイダーへの接続

最初のステップは、既存のクラウドプロバイダーに接続することです。次の手順は、Amazonクラウドプロバイダーに接続する方法を示しています。

Step 1−最初のステップは、正しいAWSキーがあることを確認することです。これはから取ることができますawsコンソール。あなたのにログインしますaws 次のリンクを使用してアカウント- https://aws.amazon.com/console/

Step 2−ログインしたら、[セキュリティ資格情報]セクションに移動します。DockerHubから使用されるアクセスキーをメモします。

Step 3 −次に、でポリシーを作成する必要があります awsこれにより、DockerはEC2インスタンスを表示できるようになります。のプロファイルセクションに移動しますaws。クリックCreate Policy ボタン。

Step 4 − [独自のポリシーを作成]をクリックし、ポリシー名を次のように指定します dockercloudpolicy 以下に示すポリシー定義。

{ 
   "Version": "2012-10-17", 
   "Statement": [ { 
      "Action": [ 
         "ec2:*", 
         "iam:ListInstanceProfiles" 
      ], 
      "Effect": "Allow", 
      "Resource": "*" 
   } ] 
}

次に、をクリックします Create Policy ボタン

Step 5 −次に、作成する必要があります roleこれは、AWSでノードをスピンアップするためにDockerによって使用されます。これについては、Roles AWSのセクションをクリックし、 Create New Role オプション。

Step 6 −役割の名前を次のように指定します dockercloud-role

Step 7 −次の画面で、「クロスアカウントアクセスのロール」に移動し、「アカウントとサードパーティのAWSアカウント間のアクセスを提供する」を選択します。

Step 8 −次の画面で、以下の詳細を入力します−

  • [アカウントID]フィールドに、DockerクラウドサービスのID(689684103426)を入力します。
  • [外部ID]フィールドに、Dockerクラウドのユーザー名を入力します。

Step 9 −次に、をクリックします Next Step ボタンをクリックし、次の画面で、前の手順で作成したポリシーを添付します。

Step 10 −最後に、役割が作成されたときの最後の画面で、必ずコピーしてください arn 作成される役割。

arn:aws:iam::085363624145:role/dockercloud-role

Step 11 −ここでに戻ります Docker Cloud、 選択する Cloud Providers、をクリックし、 plug symbol アマゾンウェブサービスの隣。

入力します arn 役割をクリックし、 Save ボタン。

保存すると、AWSとの統合が完了します。

ノードの設定

AWSとの統合が完了したら、次のステップはノードをセットアップすることです。DockerCloudの「ノード」セクションに移動します。ノードを設定すると、最初にノードクラスタが自動的に設定されることに注意してください。

Step 1 − DockerCloudの「ノード」セクションに移動します。

Step 2 −次に、AWSでセットアップされるノードの詳細を指定できます。

次に、画面の下部に表示される[ノードの起動]クラスターをクリックします。ノードがデプロイされると、ノードクラスター画面に通知が表示されます。

サービスの展開

ノードをデプロイした後の次のステップは、サービスをデプロイすることです。これを行うには、次の手順を実行する必要があります。

Step 1 −に移動します Services SectionDockerCloudで。クリックCreate ボタン

Step 2−必要なサービスを選択してください。私たちの場合、選択しましょうmongo

Step 3 −次の画面で、 Create & Deployオプション。これにより、展開が開始されますMongo ノードクラスター上のコンテナー。

デプロイされると、実行状態のコンテナーを確認できるようになります。

Dockerには、問題が発生したときに問題をデバッグするために使用できるロギングメカニズムがあります。でロギングがありますdaemon level とで container level。さまざまなレベルのロギングを見てみましょう。

デーモンロギング

デーモンのログレベルでは、利用可能なログの4つのレベルがあります-

  • Debug −デーモンプロセスによって処理される可能性のあるすべての情報の詳細。

  • Info −すべてのエラーの詳細+デーモンプロセスによって処理される情報。

  • Errors −デーモンプロセスによって処理されるすべてのエラーの詳細を示します。

  • Fatal −デーモンプロセスによって処理されるすべての致命的なエラーの詳細のみを示します。

ロギングを有効にする方法については、次の手順を実行してください。

Step 1 −まず、停止する必要があります docker daemon process、すでに実行されている場合。次のコマンドを使用して実行できます-

sudo service docker stop

Step 2 −次に開始する必要があります docker daemon process。しかし今回は、追加する必要があります–lロギングオプションを指定するパラメータ。それでは、起動時に次のコマンドを発行しましょう。docker daemon process

sudo dockerd –l debug &

上記のコマンドについては、以下の点に注意してください。

  • dockerd の実行可能ファイルです docker daemon process

  • ザ・ –lオプションは、ログレベルを指定するために使用されます。私たちの場合、これをデバッグとして配置しています

  • & ロギングを有効にした後、コマンドプロンプトに戻るために使用されます。

ロギングを使用してDockerプロセスを開始すると、次の情報も表示されます。 Debug Logs コンソールに送信されます。

ここで、次のようなDockerコマンドを実行すると docker images、デバッグ情報もコンソールに送信されます。

コンテナログ

ロギングはコンテナレベルでも利用できます。したがって、この例では、最初にUbuntuコンテナーを起動してみましょう。次のコマンドを使用してそれを行うことができます。

sudo docker run –it ubuntu /bin/bash

今、私たちは使用することができます docker log command コンテナのログを表示します。

構文

Docker logs containerID

パラメーター

  • containerID −これは、ログを表示する必要があるコンテナのIDです。

Dockerホストで、次のコマンドを発行しましょう。その前に、コンテナ内でいくつかのコマンドを発行できます。

sudo docker logs 6bfb1271fcdd

出力

出力から、コンテナで実行されたコマンドがログに表示されていることがわかります。

Docker Compose複数のコンテナを単一のサービスとして実行するために使用されます。たとえば、NGNIXとMySQLを必要とするアプリケーションがある場合、それぞれを個別に起動しなくても、両方のコンテナをサービスとして起動する1つのファイルを作成できます。

この章では、DockerComposeの使用を開始する方法を説明します。次に、DockerComposeを使用してMySQLとNGNIXを起動して実行する簡単なサービスを取得する方法を見ていきます。

DockerCompose─インストール

Docker Composeを起動して実行するには、次の手順に従う必要があります。

Step 1 −必要なファイルをからダウンロードします github 次のコマンドを使用して-

curl -L "https://github.com/docker/compose/releases/download/1.10.0-rc2/dockercompose
   -$(uname -s) -$(uname -m)" -o /home/demo/docker-compose

上記のコマンドは、この記事の執筆時点での最新バージョンのDockerComposeをダウンロードします。 1.10.0-rc2。その後、ディレクトリに保存されます/home/demo/

Step 2 −次に、提供する必要があります execute privileges 次のコマンドを使用して、ダウンロードしたDockerComposeファイルに移動します-

chmod +x /home/demo/docker-compose

次に、次のコマンドを使用して、 compose バージョン。

構文

docker-compose version

パラメーター

  • version −これは、のバージョンの詳細が必要であることを指定するために使用されます Docker Compose

出力

DockerComposeのバージョンの詳細が表示されます。

次の例は、を取得する方法を示しています docker-compose バージョン。

sudo ./docker-compose -version

出力

次に、次の出力が得られます-

最初のDocker作成ファイルの作成

それでは、最初のDockerComposeファイルを作成しましょう。すべてのDockerComposeファイルはYAMLファイルです。vimエディターを使用して作成できます。したがって、次のコマンドを実行して、compose ファイル-

sudo vim docker-compose.yml

このファイルのさまざまな詳細を詳しく見てみましょう-

  • ザ・ database そして webキーワードは、2つの別々のサービスを定義するために使用されます。1つは私たちを実行しますmysql データベースと他は私たちになります nginx Webサーバー。

  • ザ・ image キーワードは、からの画像を指定するために使用されます dockerhub 私たちのために mysql そして nginx コンテナ

  • データベースの場合、portsキーワードを使用して、公開する必要のあるポートについて言及しています。 mysql

  • 次に、次の環境変数も指定します mysql 実行する必要があります mysql

次のコマンドを使用して、DockerComposeファイルを実行してみましょう-

sudo ./docker-compose up

このコマンドは docker-compose.yml ローカルディレクトリにファイルを保存し、コンテナの構築を開始します。

実行されると、すべてのイメージのダウンロードが開始され、コンテナーが自動的に開始されます。

そして、あなたがするとき docker ps、コンテナが実際に稼働していることがわかります。

Dockerには、多くの継続的インテグレーションツールとの統合があります。これには、 Jenkins。Jenkins内には、コンテナーの操作に使用できるプラグインがあります。それでは、Jenkinsツールで利用できるDockerプラグインを簡単に見てみましょう。

ステップバイステップで、Jenkins forDockerコンテナで何が利用できるかを見てみましょう。

Step 1 − Jenkinsダッシュボードに移動し、をクリックします Manage Jenkins

Step 2 −に移動 Manage Plugins

Step 3−Dockerプラグインを検索します。Dockerプラグインを選択し、Install without restart ボタン。

Step 4−インストールが完了したら、Jenkinsダッシュボードでジョブに移動します。この例では、Demo

Step 5 −ジョブで、ビルドステップに進むと、コンテナーを開始および停止するオプションが表示されるようになりました。

Step 6−簡単な例として、ビルドが完了したときにコンテナーを停止するオプションをさらに選択できます。次に、をクリックしますSave ボタン。

さあ、Jenkinsでジョブを実行してください。コンソール出力で、[すべてのコンテナーを停止する]コマンドが実行されたことを確認できます。

Kubernetesは、Dockerコンテナーのオーケストレーションフレームワークであり、コンテナーをサービスとして外部に公開するのに役立ちます。たとえば、2つのサービスを持つことができます-1つのサービスにはnginx そして mongoDB、および別のサービスに含まれる nginx そして redis。各サービスには、他のアプリケーションで接続できるIPまたはサービスポイントを含めることができます。その後、Kubernetesを使用してこれらのサービスを管理します。

次の図は、アーキテクチャの観点からKubernetesがどのように機能するかを簡単な形式で示しています。

ザ・ minionすべてのサービスが実行されるノードです。ある時点で多くのミニオンを実行させることができます。各ミニオンは1つ以上のPODをホストします。各PODサービスをホストするようなものです。各PODにはDockerコンテナが含まれます。各PODは、異なるDockerコンテナーのセットをホストできます。次に、プロキシを使用して、これらのサービスの外部への公開を制御します。

Kubernetesのアーキテクチャにはいくつかのコンポーネントがあります。各コンポーネントの役割を以下に説明します&mius;

  • etcd −このコンポーネントは高可用性です key-value 保管に使用する店舗 shared configuration そして service discovery。ここでは、さまざまなアプリケーションがを介してサービスに接続できるようになりますdiscovery service

  • Flannel −これはコンテナに必要なバックエンドネットワークです。

  • kube-apiserver −これは、Dockerコンテナーをオーケストレーションするために使用できるAPIです。

  • kube-controller-manager −これは制御するために使用されます Kubernetes services

  • kube-scheduler −これは、ホスト上のコンテナーをスケジュールするために使用されます。

  • Kubelet −これは、を介してコンテナの起動を制御するために使用されます manifest files

  • kube-proxy −これは、ネットワークプロキシサービスを外部に提供するために使用されます。

この章では、インストール方法を説明します Kubenetes 経由 kubeadm。これは、Kubernetesのインストールに役立つツールです。ステップバイステップで、Kubernetesのインストール方法を学びましょう。

Step 1Ubuntu server version あなたが取り組んでいるのは 16.04

Step 2 −必ず生成する ssh に使用できるキー sshログインする。これは、次のコマンドを使用して実行できます。

ssh-keygen

これにより、キーが生成されます home folder 以下に示すように。

Step 3 −次に、お持ちのUbuntuのバージョンに応じて、関連するサイトをに追加する必要があります。 docker.list のために apt package manager、を検出できるように Kubernetes packages から kubernetes サイトを作成し、それに応じてダウンロードします。

次のコマンドを使用してそれを行うことができます。

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

Step 4 −次に、apt-getアップデートを発行して、すべてのパッケージがUbuntuサーバーにダウンロードされるようにします。

Step 5 −前の章で説明したように、Dockerパッケージをインストールします。

Step 6 −インストールする時が来ました kubernetes 以下のパッケージをインストールすることにより-

apt-get install –y kubelet kubeadm kubectl kubernetes-cni

Step 7 −一度すべて kubernetes パッケージがダウンロードされたら、次のコマンドを使用してkubernetesコントローラーを起動します-

kubeadm init

完了すると、マスターが稼働中であり、ノードがクラスターに参加できることを示すメッセージが表示されます。