Windows 10 で Docker を使った Wordpress 実行環境を構築したいと思います。
Docker for Windows では、Hyper-V という仮想マシンを使用しています。
Hyper-V は Windows 10 64bit Pro以上であれば使用できます。
環境
Windows 10 64bit Pro
Docker for Windows
Docker for Windows のインストール
下記サイトより Docker for Windows をダウンロードし、インストールします。
Stable 版を推奨します。
Docker for Windows のインストール中に自動的に Hyper-V が有効にされるため、
特に何かをする必要はありません。途中、Windows の再起動が必要です。
MobyLinuxVMの確認
Docker が使用する仮想マシン MobyLinuxVM が作成されていることを確認します。
コントロールパネルの管理ツールより、Hyper-V マネージャーを開きます。
Hyper-V マネージャーに MobyLinuxVM が表示され、実行中であることを確認します。
Dockerのバージョン確認
コマンドプロンプトで以下を実行します。
> docker version
Client と Server のバージョンが表示され、Server の OS/Arch が Linux になっていることを確認します。
Client:
Version: 1.13.0
API version: 1.25
Go version: go1.7.3
Git commit: 49bf474
Built: Wed Jan 18 16:20:26 2017
OS/Arch: windows/amd64
Server:
Version: 1.13.0
API version: 1.25 (minimum version 1.12)
Go version: go1.7.3
Git commit: 49bf474
Built: Wed Jan 18 16:20:26 2017
OS/Arch: linux/amd64
Experimental: true
Linux になっていない場合は、タスクトレイに表示される Docker アイコンを右クリックし、
Switch to Linux container... を選択します。
Server の OS/Arch が Linux になっていないと、下記のエラーが出ます。
docker: image operating system "linux" cannot be used on this platform.
シェアドライブの割り当て
タスクトレイに表示されるDockerアイコンを右クリックし、Setting... を選択します。
Shared Drives より、Docker で使用するドライブをあらかじめ選択しておきます。
Docker Compose のインストール
下記サイトより docker-compose-Windows-x86_64.exe をダウンロードし、実行します。
Wordpress コンテナの作成
wordpress 用の適当なフォルダを作成します。
D:\Docker\my_wordpress
そのフォルダ配下に docker-compose.yml というファイルを作成します。
テキストエディタで以下の内容をコピーします。
version: '2.1'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
コマンドプロンプトで以下を実行します。
> cd D:\Docker\my_wordpress
> docker-compose up -d
docker-compose の -d オプションはバックグラウンドで実行するという意味です。
Creating network "mywordpress_default" with the default driver
Creating volume "mywordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
5040bd298390: Already exists
55370df68315: Pull complete
fad5195d69cc: Pull complete
a1034a5fbbfc: Pull complete
84bedc72ed3a: Pull complete
10981627b57d: Pull complete
0eb1485c660d: Pull complete
e3ee110bb981: Pull complete
01dd88d2ce4f: Pull complete
a08baf9a1c89: Pull complete
2f844a59fb03: Pull complete
Digest: sha256:79690dd87d68fd4d801e65f5479f8865d572a6c7ac073c9273713a9c633022c5
Status: Downloaded newer image for mysql:5.7
Creating mywordpress_db_1
Creating mywordpress_wordpress_1
Wordpress のコンテナ確認
コマンドプロンプトで以下を実行します。
> docker ps
MySQL と Wordpress のコンテナが実行されていることを確認します。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
beb0dee84683 wordpress:latest "docker-entrypoint..." Less than a second ago Up About an hour 0.0.0.0:8000->80/tcp mywordpress_wordpress_1
326633e3e057 mysql:5.7 "docker-entrypoint..." Less than a second ago Up About an hour 3306/tcp mywordpress_db_1
ブラウザから確認
以下のアドレスに移動し、Wordpress の画面が表示されればOK。
まとめ
Docker for Windows が昨年夏ごろ正式リリースされたばかりということもあって、
2017年1月現時点では、Windows 10、Hyper-V 上での Docker は情報収集という面において困難なのは事実です。
ですが、VirtualBox から Windows 標準の Hyper-V をネイティブサポートした Docker は
非常に軽快に動作し、Windows ユーザーにとってパフォーマンス面で魅力的なコンテナ型仮想環境です。
[参考]
https://docs.docker.com/docker-for-windows/
https://docs.docker.com/compose/wordpress/
[補足] Hyper-V に外部ネットワークを追加
コントロールパネルの管理ツールより、Hyper-Vマネージャーを開きます。
仮想スイッチマネージャーを選択します。
新しい仮想ネットワークスイッチから外部の仮想スイッチを作成します。名前は好きに付けてOK。
Hyper-V マネージャーの MobyLinuxVM の設定を選択します。
ハードウェアの追加、ネットワークを選択し追加します。
仮想スイッチに先ほど作成した外部の仮想スイッチを選択します。
Docker のコンテナから外部ネットワークにアクセスできるようになります。
[補足] Kitematic のインストール
Docker の GUI ツール Kitematic をインストールします。
タスクトレイに表示される Docker アイコンを右クリックし、Kitematic をダウンロードします。
下記フォルダに解凍、配置します。
C:\Program Files\Docker\Kitematic
タスクトレイに表示される Docker アイコンを右クリックし、Open Kitematic... で起動します。