Ubuntu16.04でdryを使用してDockerコンテナを管理および監視する方法
序章
dry は、Dockerコンテナーとそのイメージを操作するために構築されたシンプルですが広範なターミナルアプリケーションです。 ドライを使用すると、ルーチン Docker Engineコマンドの実行に伴う繰り返しがなくなり、ネイティブのDockerCLIのより視覚的な代替手段も提供されます。
dryには、コンテナーをすばやく開始および停止し、Dockerイメージを安全にまたは強制的に削除し、リアルタイムのコンテナープロセスを継続的に監視し、Dockerのinfo
、inspect
、history
、およびlog
コマンド。
公式のDockerEngineCLIを介して実行できるほとんどのコマンドは、ドライでより簡単に使用でき、同じ動作と結果が得られます。 dryには、Docker Swarm機能が追加されており、マルチホストコンテナのセットアップを監視および管理するためのアウトレットを提供します。
このチュートリアルでは、dryをインストールし、その最も便利な機能のいくつかを探ります。
- Dockerコンテナー、イメージ、およびネットワークとの対話、
- Dockerコンテナーの監視、および
- オプションで、DockerSwarmノードおよびサービスと対話します。
前提条件
このチュートリアルに従うには、次のものが必要です。
- Ubuntu 16.04の初期サーバーセットアップを使用してセットアップされた1つのUbuntu16.04サーバー(sudo非rootユーザーとファイアウォールを含む)。
- Ubuntu16.04にDockerをインストールして使用する方法のようにDockerがインストールされました。
- ドライテストを行うために、いくつかのアクティブなDockerコンテナがネットワーク化されています。
このチュートリアルの例として、Ubuntu 14.04でDockerComposeを使用してWordpressとPhpMyAdminをインストールする方法のWordPressとPHPMyAdminのセットアップ(ドキュメントルートのオプションの手順なし)を使用します。 または、独自の既存のコンテナ設定を使用することもできます。 - オプションで、ローカルコンピューター上のDockerマシンと、DockerSwarmを使用するDockerセットアップ。 これは、最後のステップでdryのSwarm機能を試す場合に必要です。 これを設定するには、 Ubuntu16.04でDockerマシンを使用してリモートDockerホストをプロビジョニングおよび管理する方法とUbuntu16.04でDockerSwarmとDigitalOceanを使用してDockerコンテナーのクラスターを作成する方法。
ステップ1—ドライインストール
まず、Dockerサーバーにdryをインストールする必要があります。 ドライバイナリの最新バージョンは、dryのGitHubリリースページで入手できます。
dry-linux-amd64
バイナリの最新バージョン、つまり発行時にv0.9-beta.3
をダウンロードします。
- wget https://github.com/moncho/dry/releases/download/v0.9-beta.3/dry-linux-amd64
次に、新しいバイナリファイルをdry-linux-amd64
から/usr/local/bin/dry
に移動して名前を変更します。
- sudo mv dry-linux-amd64 /usr/local/bin/dry
/usr/local/bin
は、サーバーにローカルなプログラムのバイナリを格納するために使用される標準の場所です。 ドライバイナリをそのディレクトリに移動すると、そのディレクトリがシェルの $ PATH環境変数に含まれているため、サーバー内のどこからでもコマンドラインでドライを呼び出すことができます。
バイナリの権限をchmod
で変更して、実行できるようにします。
- sudo chmod 755 /usr/local/bin/dry
-v
オプションを指定してプログラムを実行することにより、dry
にアクセスでき、正しく機能していることをテストできます。
- dry -v
これにより、バージョン番号とビルドの詳細が返されます。
Version Details Outputdry version 0.9-beta.2, build d4d7a789
ドライが設定されたので、使ってみましょう。
ステップ2—Dockerコンテナとの対話
乾いた状態で実行して、ターミナルにダッシュボードを表示します。
- dry
ダッシュボードの上部には、Dockerバージョン、Docker Engine APIバージョン、サーバーがDocker Swarm対応のワーカー/マネージャーノードであるかどうか、サーバーのホスト名とリソースなど、サーバーとDockerソフトウェアに関する情報が表示されます。
ダッシュボードの下部には、ドライのさまざまな部分にアクセスするために使用できるナビゲーションキーのリファレンスがあります。
Navigation key options[H]:Help [Q]:Quit | [F1]:Sort [F2]:Toggle Show Containers [F5]:Refresh [%]:Filter |
[m]:Monitor mode [2]:Images [3]:Networks [4]:Nodes [5]:Services | [Enter]:Commands
レンダリングにエラーがある場合は、いつでもF5
を使用してドライの表示を更新できます。
このダッシュボード自体は、最初にドライを開始したときにデフォルトでContainers
リストになります。 このビューでは、ホストのコンテナの一般的な状態を確認できます。
前提条件のチュートリアルのWordpress、MariaDB、PHPMyAdminコンテナスタックの例を使用している場合は、新しく作成された3つのコンテナが一覧表示されます。
キーボードの上下矢印を使用してWordpressコンテナーを選択し、ENTER
を押します。
これにより、ポートマッピング、ネットワークリンク、ネットワークコンテナのIPアドレスなど、コンテナに関する情報が画面の上部に表示されます。
WordPress Container Statistics Container Name: wordpress_wordpress_1 ID: f67f9914b57e Status: Up 13 minutes
Image: wordpress Created: About an hour ago
Command: docker-entrypoint.sh apache2-foreground
Port mapping: 0.0.0.0:8080->80/tcp
Network Name: bridge
IP Address: 172.17.0.3
Labels 6
コンテナを選択すると、画面の中央下にも選択可能なオプションの新しいリストが表示されます。
-
Fetch logs
。これは、DockerEngineコマンドdockerlogsと同等です。 これは、コンテナ内のエラーのデバッグとトラブルシューティングに役立ちます。 -
Kill container
。これは、コンテナーが応答せず、正常に終了しない場合に使用できます。 -
Remove container
は、不要なコンテナをきれいに取り除くために使用できます。
警告:Kill container
およびRemove Container
オプションは即座に発行され、確認プロンプトがないため、注意してください。
-
Inspect container
は、 docker containerinspectと同等です。 -
Restart
。コンテナを停止して再起動します。 DockerEngineコマンドを入力して再起動またはコンテナーのステータスを照会するよりもはるかに高速です。 -
Show image history
。コンテナのイメージを構築するために使用されたコマンドが一覧表示されます。 これらの「レイヤー」は、イメージビルドプロセス中に生成され、Dockerfileで提供されるコマンド/アクションの結果です。 このオプションを使用すると、ベースDockerイメージを使用してコンテナーがどの程度正確に生成されたかを確認できます。 -
Stats + Top
には、CPU使用率、メモリ消費量、インバウンドおよびアウトバウンドネットワークトラフィック、ファイルシステム操作、合計プロセスID、合計コンテナ稼働時間などの情報が含まれます。 また、topの出力と機能的に同じプロセスリストも含まれています。 -
Stop
、コンテナを停止します。F2
を使用して、Containers
ビューのコンテナーを切り替えてcurrently stopped and active
を含めることができます。また、Restart
オプションを選択した後、停止したコンテナーを再起動できます。 。
ESC
キーを押して、ダッシュボードのルートContainers
セクションに戻ります。 ここから、Images
セクションを見ていきます。
ステップ3—Dockerイメージとの対話
Containers
セクションから、2
を押して、ドライのImages
セクションにアクセスします。
このセクションでは、 dockerimageinspectコマンドに簡単にアクセスできます。 dryには、ナビゲーションバーに表示される便利なキーボードショートカットもいくつかあります。
CTRL+D
Remove Dangling
の場合、「ぶら下がっているボリューム」とは、どのコンテナーからも参照されなくなったために冗長になっている他のコンテナーボリュームを指します。 通常、コマンドラインのDockerでは、この操作にはdocker volume rm
コマンドとdangling=true
フラグ、およびターゲットデータボリュームが含まれます。Remove
のCTRL+E
は、 docker rmi と同等であり、そのイメージから作成されたコンテナーがまだアクティブで実行されていない限り、イメージを削除できます。CTRL+F
forForce Remove
。これにより、docker rmi --force
を使用しているかのように、強調表示された画像を強制的に削除できます。History
のI
は、Containers
セクションのShow Image History
と同じデータを表示します。
これまで、ドライのコンテナと画像のセクションを見てきました。 探索する最後のセクションはネットワークです。
ステップ4—Dockerネットワークとの対話
Images
セクションで、3
を押して、Networks
セクションにアクセスします。
このセクションは、Dockerコンテナのネットワークリンクとネットワーク構成を確認するのに理想的です。