このチュートリアルでは、Dryを使用してECSインスタンス上で実行されているDockerコンテナ、イメージ、ネットワークを管理・監視する方法を学びます。
本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。
#必要条件
- 新しく作成したECSインスタンスをUbuntu 16.04でインストールしました。
- インスタンスに静的IPアドレス192.168.43.192が設定されています。
- インスタンスにrootパスワードを設定します。
#手順
DryでDockerコンテナを管理・監視するには、以下の手順に従います。
###Alibaba Cloud ECSインスタンスの起動
まず、Alibaba Cloud ECS Consoleにログオンします。次に、オペレーティングシステムとしてUbuntu 16.04を使用し、少なくとも2GBのRAMを搭載した新しいECSインスタンスを作成します。最後に、ECSインスタンスに接続し、rootユーザーとしてログオンします。
Ubuntu 16.04インスタンスにログオンしたら、以下のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
#Dockerのインストール
次のステップに進む前に、インスタンスにDocker CEとDocker composeをインストールする必要があります。デフォルトでは、Ubuntu 16.04のデフォルトリポジトリにはDockerの最新バージョンはありません。そのため、そのためのPPAを追加する必要があります。これは以下のコマンドを実行することで行うことができます。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
次に、以下のコマンドを実行してリポジトリを更新し、Docker CEとDocker composeをインストールします。
apt-get update -y
apt-get install docker-ce docker-compose -y
インストールが完了したら、以下のコマンドでDockerサービスの状態を確認することができます。
systemctl status docker
出力は以下のようになります。
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-11-15 20:25:06 IST; 56s ago
Docs: https://docs.docker.com
Main PID: 16125 (dockerd)
CGroup: /system.slice/docker.service
└─16125 /usr/bin/dockerd -H unix://
Nov 15 20:25:04 Node1 dockerd[16125]: time="2018-11-15T20:25:04.988356579+05:30" level=warning msg="Your kernel does not support swap memory li
Nov 15 20:25:04 Node1 dockerd[16125]: time="2018-11-15T20:25:04.989716941+05:30" level=warning msg="Your kernel does not support cgroup rt peri
Nov 15 20:25:04 Node1 dockerd[16125]: time="2018-11-15T20:25:04.991123520+05:30" level=warning msg="Your kernel does not support cgroup rt runt
Nov 15 20:25:05 Node1 dockerd[16125]: time="2018-11-15T20:25:05.000582570+05:30" level=info msg="Loading containers: start."
Nov 15 20:25:06 Node1 dockerd[16125]: time="2018-11-15T20:25:06.049283689+05:30" level=info msg="Default bridge (docker0) is assigned with an I
Nov 15 20:25:06 Node1 dockerd[16125]: time="2018-11-15T20:25:06.278993600+05:30" level=info msg="Loading containers: done."
Nov 15 20:25:06 Node1 dockerd[16125]: time="2018-11-15T20:25:06.353529803+05:30" level=info msg="Docker daemon" commit=4d60db4 graphdriver(s)=o
Nov 15 20:25:06 Node1 dockerd[16125]: time="2018-11-15T20:25:06.361600332+05:30" level=info msg="Daemon has completed initialization"
Nov 15 20:25:06 Node1 systemd[1]: Started Docker Application Container Engine.
Nov 15 20:25:06 Node1 dockerd[16125]: time="2018-11-15T20:25:06.527874596+05:30" level=info msg="API listen on /var/run/docker.sock"
###Docker ComposeでWordpressとPhpMyAdminをインストールする
また、DryをテストするためにいくつかのDockerコンテナをセットアップする必要があります。ここでは、Docker composeを使ってWordpressとPhpMyAdminのコンテナをセットアップします。まず、コンテナのデータを保存するディレクトリと、コンテナを実行するためのdocker-compose.ymlを作成します。
mkdir wordpress
次に、wordpressとPhpMyAdminコンテナをセットアップするためのdocker-compose.ymlを作成します。
nano wordpress/docker-compose.yml
以下の行を追加します。
wordpress:
image: wordpress
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: password
phpmyadmin:
image: corbinu/docker-phpmyadmin
links:
- wordpress_db:mysql
ports:
- 8181:80
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: password
保存してファイルを閉じます。ここで、以下のコマンドを実行してWordpressとPhpMyAdminのイメージをダウンロードし、バックグラウンドで両方のコンテナを実行します。
docker-compose up -d
セットアップが完了すると、Wordpressコンテナはポート8080で、PhpMyAdminコンテナはポート8181で待機しています。
###Wordpressコンテナにアクセスする
ウェブブラウザを開き、アドレス http://192.168.43.192:8080 を入力します。Wordpressのインストールページにリダイレクトされます。
言語を選択し、「続行」ボタンをクリックしてください。次のページが表示されるはずです。
Sitename、adminユーザー名、パスワードを入力します。そして、Wordpressのインストールボタンをクリックします。インストールが完了すると、以下のようなページが表示されます。
ここで、管理者用のユーザー名とパスワードを入力します。そして、ログオンボタンをクリックします。すると、以下のページにWordpressのダッシュボードが表示されます。
###PhpMyAdminコンテナにアクセスする
ウェブブラウザを開き、アドレスを http://192.168.43.192:8181 と入力してください。次のページにリダイレクトされます。
ここで、ルートユーザー名とパスワードを入力します。そして、Goボタンをクリックします。すると以下のページにPhpMyAdminのダッシュボードが表示されます。
#Dryのインストール
これで両方のコンテナが設定され、実行されています。次に、Dryをインスタンスにインストールする必要があります。以下のコマンドでDryの最新バージョンをダウンロードできます。
wget https://github.com/moncho/dry/releases/download/v0.9-beta.7/dry-linux-amd64
ダウンロードが完了したら、ダウンロードしたバイナリファイルを /usr/local/bin/ ディレクトリにコピーします。
cp dry-linux-amd64 /usr/local/bin/dry
次に、ドライバイナリファイルに許可を与えます。
chmod 755 /usr/local/bin/dry
では、以下のコマンドを実行してDry版を確認します。
dry -v
以下のように出力されます。
dry version 0.9-beta.7, build dfb8223a
###Dryの作業
ここで、ターミナルウィンドウから dry コマンドを実行するだけで dry ユーティリティが起動します。
dry
これにより、docker デーモンと実行中のコンテナに関するすべての有用な情報が読み込まれたプロンプトが表示されます。
さて、上/下矢印キーを使用してPhpMyAdminコンテナを選択し、Enterキーを押します。次のページにコンテナに関する情報が表示されているはずです。
ここでは、上下矢印キーを使ってコンテナの再起動、停止、削除、キルを行うことができます。
ESC キーを押してメインダッシュボードに戻ります。次に、3を押して、以下のようにネットワークセクションにアクセスします。
ここでは、コンテナのネットワーク IP アドレスと MAC アドレスが表示されます。ESC キーをもう一度押して、メインダッシュボードに戻ります。2 を押して、以下のように画像セクションにアクセスします。
ここでは、実行中のコンテナの画像を見ることができます。また、画像を削除したり、画像の履歴を表示したりすることもできます。
アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ