はじめに
WSL2 で Docker を使って WordPress のテストをします。
私は、以下のエラーで詰んでこの方法でやり直しました。
System has not been booted with systemd as init system (PID 1). Can't operate. docker System has not been booted with systemd as init system (PID 1). Can't operate.
目次
今回の環境
OS : Windows 10 pro 2004
WSL2 : Ubuntu18.04
2020/06/06 現在の情報
WSL 2 に変更するまで
WSL 2 インストール
私の場合、WSL1が事前に入っていたのでバージョンを更新します。 管理者権限を持った PowerShell より以下を実行します。
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform wsl --set-version Ubuntu-18.04 2 # Ubuntu-18.04 の部分は、各自の WSL のOS によって異なります
『WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。...』のようなメッセージが出た場合は、
aka.ms
以上のURLにアクセスしてインストーラーをダウンロードします。
ダウンロードしたインストーラーを実行して、再度上記のコマンドを実行します。
WSL バージョン確認
PowerShell で以下を実行します
wsl -l -v
私の場合は、すでに Docker が実行されています。
WSL2 準備
System has not been booted with systemd as init system (PID 1). Can't operate. docker System has not been booted with systemd as init system (PID 1). Can't operate.
以上のようなエラーが出るため、一度すでに WSL2 に入っている docker を削除します。
WSL2 docker の削除
WSL2 上で以下を実行します。
sudo apt remove docker-ce sudo apt remove docker-ce-cli sudo apt remove docker-engine sudo apt remove docker-engine-cs sudo apt remove docker.io
Docker Desktop 側の設定
Docker Desktop を起動します。
右下のクジラを右クリックして設定を開きます。
General の以下の二つの設定に、チェックが無ければ、チェックします。
・Expose daemon on tcp://localhost:2375 without TLS
・Use the WSL 2 based engine
最後に、 Apply & Restart
をクリックして適用します。
Wordpress を起動するまで
Wordpress と mysql のdocker イメージを取得する
docker pull
でイメージを引っ張ってきます。
docker pull mysql:5 docker pull wordpress:4.9.8 #docker pull ほしいdockerイメージ:(コロン)バージョン(任意)
今回は、古いバージョンが欲しいので、バージョンを指定してます。
指定がなければ、最新版になります。
docker ネットワークを作成する
今回は、テストなのでネットワークの名前は、test
にしました。
docker network create test #docker network create 作成するネットワーク名
docker コンテナ 作成
以下のコマンドを実行して、 mysql と wordpress のコンテナを作成します。
docker run --name mysql_docker --net test -e MYSQL_ROOT_PASSWORD=password -d mysql:5 docker run --name wordpress_docker --net test -e WORDPRESS_DB_HOST=mysql_docker -e WORDPRESS_DB_PASSWORD=password -p 8080:80 -d wordpress:4.9.8 ## 解説 #docker run --name mysqlのdockerコンテナ名 --net ネットワーク名 -e MYSQL_ROOT_PASSWORD=mysqlのパスワード -d コンテナイメージ:バージョン(任意) #docker run --name wordpressのdockerコンテナ名 --net ネットワーク名 -e WORDPRESS_DB_HOST=mysqlのdockerコンテナ名 -e WORDPRESS_DB_PASSWORD=mysqlのパスワード -p 8080:80 -d コンテナイメージ
docker コンテナが作成されたのか確認する。
docker ps
作成したコンテナがあれば、完了です。
IPアドレスの確認
Wordpress にアクセスするために WSL2 の IP アドレスを確認します。
iwconfig
実行結果の 192.168... ってやつです。
wordpress の初期設定
Chrome や FireFox でアドレスバーに http://IPアドレス:8080(ポート番号)
を打ってアクセスします。
初回は、/wp-admin/install.php
に飛ばされます。
あとは、画面に従ってインストールします。
ログイン画面に、一度戻されますがログインすると管理画面を確認できます。
docker コンテナの停止と削除
最後に、いらなくなったコンテナを削除します。
docker ps -a
以上のコマンドでCONTAINER IDを確認します。
# コンテナの停止 # docker stop コンテナID (例) docker stop d138aac4300c # コンテナの削除 # docker rm コンテナID (例)docker rm d138aac4300c
さいごに
docker イメージは、たくさん種類があるので以下から探してみてはいかがですか