Docker for Windowsが入っていれば30秒以内です。
Java大好き人間ですがPHP系の話題を書いてみます。
Dockerは既に入ってるよって人はdocker-composeのための設定
から読んでください。
前提条件
Dockerが使える環境であること前提となります。
やや語弊がありますが、ほぼWindows Nativeで使いたい場合、
Windows 10 Professional Edition (64bit)である必要があります(=要Hyper-V)。
もしくはmacOSかLinuxであることが前提になります。
どうしてもWindows Home Editionでdockerを使う場合、
通常はVirtual Box/VMware上にUbuntu/CentOS等をインストールしてそのうえでDockerを使うことになります。
一応Windows Subsystem for Linuxでも可ですが、少し環境構築のハードルは上がると思います。
あとは…Docker Tool Boxなるものがあったのでそれでも良いです。
今回はWindows 10 Professional Editionの場合のみ説明します。
Hyper-Vの有効化
管理者権限で以下のコマンドを入力した後に、Windowsを再起動します。
bcdedit /set hypervisorlaunchtype auto
このあたりは上記コマンドラインでなくてもググるといろいろやり方が書いてあるので、どの方法でやっていただいても結構です。
Docker for Windowsのインストール
https://docs.docker.com/docker-for-windows/install/
よりDocker for Windowsをダウンロードします。
Docker Hubのアカウントが必要ですが、無料ですので作ってしまいましょう。
あとはインストーラーを起動するだけでOKです。
docker-composeのための設定
Win+Rでcmd
と入力します
%USERPROFILE%
になっている(通常C:\Users\[ユーザ名])ことを確認します。
docker-wp
ディレクトリを作成し、そのディレクトリ内に移動します。
> mkdir docker-wp > cd docker-wp
docker-compse.yml
のファイルを作ります。
まずはstartコマンドでカレントディレクトリを開きます。
> start .
Explorerが立ち上がるので右クリック等で新規ファイル(テキストドキュメント)を作成し、
F2キー等でdocker-compose.yml
にリネームし、メモ帳等で開き、次の内容を記入します(コピペ)
お試し環境のためパスワード等は脆弱な設定になっています。
version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wp_db MYSQL_USER: wp_user MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wp_db WORDPRESS_DB_USER: wp_user WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: {}
簡単に記載していることを説明しますと、
データベースであるMySQLとWordPressを入れるようにするのと、
それぞれデータベースのユーザ名とパスワードを指定しています。
また、HTTPでアクセスするときのポートをデフォルトの80から8080へ変更しています。
あとPC再起動のときなどrestart: always
で必ず勝手に立ち上がるようにしています。
それが嫌な場合は毎回手動でdocker-compse up/down
をする必要があります。
MySQLは5.7系を使うこととします。WordPressは最新版を使います。
docker-compose.yml
のあるディレクトリでdocker-compose up -d
を実行します
-d
はバックグラウンド実行を意味します。
> docker-compose up -d
このとき、右下にクジラが出てきてShare itってのが出てくるのでそれを押します(押さないとエラーになってしまいます) docker pullコマンドが自動的に実行され、最終的にMySQLとWordPressのプロセスが立ち上がります。 確認のため下記のコマンドを実行します
> docker container ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1a19e6e913ad wordpress:latest "docker-entrypoint.s…" 54 seconds ago Up 52 seconds 0.0.0.0:8080->80/tcp docker-wp_wordpress_1 4d4964e58524 mysql:5.7.26 "docker-entrypoint.s…" 55 seconds ago Up 54 seconds 3306/tcp, 33060/tcp docker-wp_db_1
このように表示されていればOKです。
Chrome等のブラウザにてhttp://localhost:8080 を押します。
WordPressの初期設定画面に行くはずです。
以降、PCの電源をOFFにしても上記URLをブラウザで入力するとWordPressを使うことができます。
それをやめたい場合はymlファイルを編集するか、下記のコマンドを入力すればOKです。
docker update --restart=no [CONTAINER-ID]
PC再起動時の補足
再起動後、
Docker desktop is running ... と出るまで待ってあげましょう。
横着な人は、タスクバーに隠れてるDocker for WindowsのアイコンのSettingsをみて
Docker is running
になっているのを確認しましょう。
結構起動するまで待たされます。
その後、
http://localhost:8080
と打ってあげるとうまくいきます。
参考リンク
https://docs.docker.com/compose/wordpress/
https://qiita.com/shimisunet/items/1406e33e1eeb36665f2c
https://qiita.com/koyo-miyamura/items/a760dd57160155d3b764
次回はUbuntuでの環境構築を書きたいと思います…(あくまで予定)