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
オプション
sudo − sudo コマンドは、コマンドがルートアクセスで実行されるようにするために使用されます。
update − update オプションを使用すると、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 volumes に docker 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 次のリンクを使用してアカウント-
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 1 − Ubuntu 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
完了すると、マスターが稼働中であり、ノードがクラスターに参加できることを示すメッセージが表示されます。