前回に引き続き、「Docker Desktop for Windows」の機能を色々と確認してみます。
今回はDockerダッシュボードを確認しながら、Docker上でWordpressを動かしていきます。
Dockerダッシュボードを表示する
まずはDockerダッシュボードを表示します。
タスクトレイのDockerアイコンから「Dashboard」を選択します。
※Dockerアイコンがタスクトレイにない場合は、スタートメニューから「Docker Desktop」を実行します。
ダッシュボード画面はこのようになっています。
前回使用した「Hello-World」コンテナは削除してあるので、現在稼働中のコンテナが無い状態です。
WordPressコンテナを作成する
ではWordprressを準備していきましょう。
…ですがその前に、Windows側に作業用フォルダを作成しておきます。
(今回はDドライブ直下に「Docker_workspace」という名前で作業場所を作りました。)
今回、Wordpressコンテナの作成はDockerComposeを使用して行います。
まずは作業フォルダ内に「docker-compose.yml」と「.env」ファイルを以下の内容で作成しておきます。
■docker-compose.yml
version: '3.4'
volumes:
wp_db_data: {}
services:
mysql:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
restart: always
env_file: .env
wordpress:
depends_on:
- mysql
image: wordpress:latest
ports:
- "38080:80"
volumes:
- ./html:/var/www/html
restart: always
env_file: .env
■.env
WORDPRESS_DB_HOST=mysql:3306
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=wordpress
MYSQL_ROOT_PASSWORD=wordpress
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
※ファイル中の記述内容については連載第8回に解説がありますので、そちらを参照頂ければと思います。
ファイルの準備が出来たら、コマンドプロンプトを起動します。
作業フォルダに移動し、docker-composeコマンドを実行します。
>cd /d D:\Docker_workspace
>docker-compose up -d
「docker-compose.yml」でmysqlとwordpressの2つのサービスともに「volumes」を指定しているので、途中で以下の確認が来ます。「Share it」を選択してください。
※MySQLコンテナ内部の「/var/lib/mysql」フォルダが、作業フォルダ直下の「/mysql」フォルダをマウントします。作業フォルダ側に自動で「/mysql」フォルダが生成されます。
※同じくWordpressコンテナ内部の「/var/www/html」フォルダが、作業フォルダ直下の「/html」フォルダをマウントします。作業フォルダ側に自動で「/html」フォルダが生成されます。
DockerComposeの処理が完了するとWordpressが起動した状態になります。Webブラウザから「localhost:38080」にアクセスするとWordpressのトップ画面が表示されます。
Dockerダッシュボードを確認する
ではここで、ダッシュボードを確認してみましょう。
ダッシュボードに、作成した「docker-workspace」が表示されており、その折り畳みの中にMySQLとWordpressのコンテナがいます。「docker-compose.yml」で指定したサービスの構造どおりです。
ここでできることを少し見てみましょう。
・composeの管理(docker-workspace)
…「開始/停止」、「削除」が行えます。
他に、VisualStudioCodeと紐づけることもできる?ようです(※ここは未確認です…)
・コンテナの管理(docker-workspace_mysql_1、docker-workspace_wordpress_1)
…「開始/停止」、「再起動」、「削除」が行えます。
その他「CLI(コマンド入力画面)の起動」やWebサーバコンテナの場合「ブラウザで表示」もできます。
試しにWordpressのCLIを起動(一番左側のアイコン)し、apacheとPHPのバージョンを確認するコマンドを実行してみました。Wordpressコンテナの内部で動いているApacheは2.4.38、PHPは7.4.8だとわかります。
ダッシュボードからコンテナの詳細を確認する
ダッシュボードからコンテナ名の辺りをクリックすると、コンテナ内部の詳細が表示されます。
・「Logs」…コンテナ内部に出力されているログをモニタすることができます。
・「Inspect」…コンテナの環境設定情報を参照できます。
・「Stats」…コンテナのCPU使用量、メモリ使用量などの状態を確認できます。
CLIが苦手な人(コマンドをすぐ忘れてしまう人→筆者)にとっては、とても嬉しい機能ですね。
マウントの指定を確認する
コンテナにマウントの指定を行っていれば、コンテナ詳細の「Inspect」の中に、マウントについての情報があります。
MySQLコンテナの詳細より「Inspect>Mounts」のパスを確認すると、「/host_mnt/d/Docker_workspace/mysql」となっています。
「host_mnt」が、ホスト側(Windowsマシン)を指していて、そのマシン上の「d/Docker_workspace/mysql」にマウントしています、ということがわかります。
ホスト側はこのようになっていました。
本来コンテナ内部に持っているMySQLのデータファイルが、コンテナ外部に実体を持つように出来ています。こうしておくことで、コンテナを削除してもデータベースの内容をローカルPC上に残しておくことができます。(マウントしていない場合、コンテナを削除するとその中のコンテンツも全て削除されてしまいます。再作成したコンテナは、全く別のコンテナであり新規の状態になっています。)
マウントしているフォルダの情報は、ダッシュボード上部の歯車のアイコンから、設定画面を見ることでも確認できます。
設定画面から「Resources>FileSharing」を確認します。
コンテナと共有しているフォルダが見えています。
マウントしているフォルダにWordpressプラグインを追加する
今のWordpressにはデフォルトのプラグイン以外には何もない状態です。
そこで、Wordpress用にマウントしているフォルダ
「D:\Docker_workspace\html」
の「\wp-content\plugins」フォルダへプラグインを追加してみます。
試しに「google-sitemap-generator」プラグインをダウンロードし、解凍したものをこのフォルダに配置してみます。配置がすんだらWordpressの管理画面にログインし、プラグインを見てみると、追加できていることが確認できます。
WordPressの管理画面から操作しなくてもよいので、例えば別のWordpressサイトで使っているプラグインやテーマを丸ごと適用したい場合などはこのやり方が簡単でよいと思います。
今回はDocker Desktopのダッシュボードの使い方を簡単に見てみました。
次回も引き続き、Docker Desktopの使い方を色々と見ていきます。
株式会社 パブリックリレーションズ 〒064-0807 北海道札幌市中央区南7条西1丁目13番地 弘安ビル5階 011-520-1800 011-520-1802