初めてDockerを使ってみて、最新バージョンPHPでWordPressローカル環境を構築してみた

Docker使って最新PHPでWordPress構築 ブログメンテナンス

では、前ページでDockerの良い点、悪い点を個人的意見で述べてみましたが、これから実際にインストールしていきます。
なお、私はDocker初心者で、プログラミング等の知識は独学です。
誤り等ありましたら、コメント投稿でご連絡いただけると助かります。

Docker Desktop インストール (Windows 10)

私の個人的な思い込みで、Dockerには3種類くらいあるのかと思っていました。
ネットの情報では、
Docker
Docker Desktop
Docker for Windows
とあって、別物と思っていました。
実はそれは違って、Docker Desktop一択でした。無知なのでそんなもんです。

Windows10にDockerをインストールするには、PowerShellを使えるようにしておき、WSL2をインストールしておかねばなりませんでした。

システム必要条件

WSL2というWindows上でLinuxを使うことが出来るアプリを使うことを前提としているため、WSL2が使えるシステム条件が必要となります。

【2021/7/11時点】

  • Windows 10 64bit: HomeまたはPro 2004(ビルド19041)以降。またはEnterprise、Education 1909(ビルド18363)以降。
  • WindowsでWSL2機能を有効にします。(これは後ほど説明します)

Windows10でWSL2を正常に実行するには、次のハードウェアの前提条件が必要です。

  • 第2レベルのアドレス変換(SLAT)を備えた64ビットプロセッサ
  • 4GBシステムRAM
  • BIOSレベルのハードウェア仮想化サポートは、BIOS設定で有効にする必要があります。(これについては当方ではよくわからないので、ネット検索してみてください。)

正確な詳細情報は、Docker公式のこちらを参照してください。

Windows PowerShell を使えるようにしておく

Windows10環境の場合、Dockerをインストールする前に、PowerShellというWindows標準ソフトを使えるようにしておきます。

実は、ついこの前知ったことなのですが、Windos10ではPowerShellは2015年頃には標準搭載されているらしく、ウィンドウアイコンを右クリックすると、コマンドプロンプトではなくて、標準でWindows PowerShell が表示されるように設定されているらしいです。

私は、このことを知らずに、コマンドプロンプトが標準だとずっと思い続けていて、ウィンドウアイコンを右クリックしてもコマンドプロンプトが出る設定に戻していたようです。
PowerShellが標準だと気付いたのは、今回、Dockerをインストールした時でした。

まず、ウィンドウアイコンを右クリックすると、以下のようにコマンドプロンプトが出ているとします。

(図01)

メニューがコマンドプロンプトの場合

Windowメニューがコマンドプロンプトの場合

そうしたら、ウィンドウアイコンを右クリック→「設定」をクリックして以下の画面を出し、「個人用設定」をクリックます。

(図02)

個人用設定をクリック

設定の個人用設定をクリック

以下の画面が出たら、左側の欄の「タスクバー」をクリックし、下図の様なところをONにします。

(図03)

タスクバーのPowerShellをON

タスクバーのPowerShellをON

すると、ウィンドウアイコンを右クリックすれば、コマンドプロンプトからPowerShellに置き換わります。

(図04)

PowerShell 設定OK

ウィンドウメニューにPowerShell設定完了

そうしたら、PowerShellを起動して、下図のように表示されればOK!

(図05)

PowerShell起動OK

PowerShell起動OK

そうしたら、Change Directory コマンドを使ってみて下さい。
うれしいことに、昔ながらのMS-DOSコマンドがそのまま使えました。
こんな感じです。

PS C:\Users\User-Name> cd d:
PS D:\> cd docker\wordpress
PS D:\docker\wordpress> cd ..
PS D:\docker> cd ..
PS D:\>

コマンドプロンプトではこうはいきませんでした。
昭和の時代で生まれ育った私にとっては、とても懐かしくて使いやすいですね。
また、MS-DOS世代ではお馴染みの、画面をクリアする cls コマンドも使えました。

そして、範囲選択については、マウスでそのまま選択できて、クリップボードにコピーできました。
こんな感じです。

(図06)

PowerShellの範囲選択

PowerShellの範囲選択は簡単

コマンドプロンプトでは範囲選択する時に右クリックしてマークするのが面倒だったのですが、かなり使い易くなりましたね。(実は最近、コマンドプロンプトでも設定を変えればできることを知りました。)

因みに、コマンドプロンプト同様、左上端のアイコンをクリックして、プロパティを選ぶと設定がいろいろ変えられますので、試してみて下さい。

(図07)

PowerShellの設定変更

PowerShellの設定変更

まずはWSL2 をインストールする

Windows10環境でDocker をインストールする時、WSL2をインストールしていないと、インストール中に下図の様に WSL 2 installation is incomplete. というエラーメッセージが出てしまいます。

(図10)

WSL2無い場合の警告

WSL2インストールしないでDockerインストールした場合の警告

その場合、上図のようにリンクをクリックして、WSL2をインストールしなければいけません。

以下、Microsoft WSLドキュメント公式ページを基にインストールしていきます。

WSL2とは、Windows Subsystem for Linux の略で、Linux実行環境がWindows上で実現できるシステムで、WSLとWSL2があります。
現在のDockerでは、WSL2をインストールします。

参考までに、私の2021/07/15時点のWindows10環境については、こんな感じです。

Windows 10 pro
バージョン: 20H2
ビルド: 19042

WSL2インストーラを公式ページからダウンロードしてインストールする

まず、Microsoft公式WSLのページの手順4を開き、下図の様なところをクリックして、WSL2 インストーラファイルをダウンロードします。
WSLの上位バージョンWSL2をダウンロードします。
(※私の環境の場合は、この公式ページの手順3を実行しなくても問題無く動作しましたが、もしうまく動かない場合は、手順3の「仮想マシンの機能を有効にする」を設定すると良いかもしれません)

(図11)

WSL2インストーラリンク

WSL2インストーラーリンクの場所

すると、下図の様なexe形式ファイルがダウンロードされていますので、それを管理者権限で起動します。

(図12)

WSL2インストーラファイル

WSL2インストーラファイル

すると、下図の様な画面になるので、「Next」をクリックして、インストールしていきます。

(図13)

WSL2インストール画面1

WSL2インストール画面1

インストール完了すると、下図の様になるので「Finish」をクリックします。

(図14)

WSL2インストール画面2

WSL2インストール画面2

WSL2 を既定のバージョンとして設定する

予め、旧バージョンのWSLが存在していた場合、そちらが優先されてしまう場合があるため、WSL2を既定のバージョンとして設定します。

この設定は、後で紹介しているような、DockerデータをCドライブとは別ドライブに移したい時に特に重要です。

PowerShell を管理者権限で起動し、以下のコマンドを入力します。

wsl --set-default-version 2

すると、下図の様になります。

(図15)

WSL既定バージョンコマンド

WSL既定バージョンを2にするコマンド

これで、規定の設定がWSL2になりました。

Hyper-V は不要だった

Dockerをインストールする時、ネットの情報ではHyper-Vを使うこと前提みたいな記事が多く見受けられ、かなり戸惑いました。
ですが、私の場合は、Windows10 proだった為、WSL2が使えたので、Hyper-Vは不要でした。
Hyper-Vを有効にする設定も不要でした。

もしかしたら、WSL2とHyper-Vの両方を使わなければいけないのかと思ったのですが、WSL2だけで問題無かったようです。

Windows10 Homeでも、最新ビルドならば、BIOS設定を変えるとWSL2が使えるようになるらしいです。

Docker Desktop本体インストール

さて、ようやくDocker本体のインストールです。

先ほどもちょっと述べましたが、ネットの情報では、Dockerなのか、Docker Desktopなのか、Docker for Windowsなのか、Docker Hubなのか、どれをインストールしたらいいのかイマイチはっきりしなかったのですが、結局、Docker Desktopをインストールすれば良いということでした。

まず、Docker公式の以下のサイトを開きます。
https://www.docker.com/

すると、下図の様に表示されるので、右上端の「Get Started」をクリックします。

(図20)

Docker公式サイト

Docker公式サイトのGet Start をクリック

すると、下図の様に表示されるので、Docker Desktop のプルダウンメニューから、「Download for Windows」をクリックすれば、インストーラファイルがダウンロードされます。

(図21)

Docker Desktop for Windows選択

Docker Desktop for Windows選択

ダウンロードが完了すると、ダウンロードフォルダにexe形式ファイルが保存されているので、それを管理者権限で起動してインストールします。

(図22)

Docker Desktop exeファイル

Docker Desktop インストーラファイル

すると、下図の様な画面が出るので、全てチェック入れて、OKをクリックします。

(図23)

Dockerインストール画面1

Dockerインストール画面1

インストール完了すると、下図の様になるので、「Close and restart」をクリックすると、パソコンが再起動します。

(図24)

Dockerインストール画面2

Dockerインストール画面2

再起動後、自動でDocker Desktopが開き、下図の様な画面が出ます。
これは、閉じてOKです。

(図25)

Docker初起動画面

Docker初起動画面

ただ、これだと、Windowsを起動する度にDocker画面が出現するので、必要な時だけDockerを起動するようにしたい場合には、下図の様にタスクトレイを開いて、Dockerアイコンを右クリックし、「Settings」を開きます。

(図26)

Dockerタスクトレイアイコン右クリック

Dockerタスクトレイアイコン右クリックして、settingを選択

すると、下図の様な画面になるので、
「Start Docker Desktop when you log in」
のチェックを外すと、タスクトレイに常駐しなくなります。
そして、
「Open Docker Desktop dashboard at startup」
のチェックを外すと、Windows起動後にDocker Desktopダッシュボードが開かなくなります。

(図27)

Docker Settings画面

Docker Settings画面の2つのチェックを外す

以上で、Docker Desktopのインストール終了です。

因みに、先ほども少し述べましたが、インストール最中に以下のメッセージ
WSL 2 installation is incomplete.
が出た場合、WSL2をインストールせずにDockerを先にインストールしてしまったことが原因です。
WSL2をインストールしてから、Docker Desktopをインストールをやり直してください。

(図10)

WSL2無い場合の警告

WSL2インストールしないでDockerインストールした場合の警告

Hello World で動作確認

では、Docker Desktopがインストールできたので、ちゃんと動くかどうか確かめてみます。
初期動作確認として、Dockerイメージとコンテナを作成して、コマンドラインに「Hello World」を表示させてみます。

まずは、Dockerのバージョンを確認してみます。
以下のコマンドです。
docker --version
または、
docker -v

すると、以下のように表示されればOKです。

PS D:\> docker --version
Docker version 20.10.7, build f0df350

次に、Hello World を表示させるには、以下のコマンドです。

docker run hello-world

これは、Hello Worldを表示させるためのDockerイメージとコンテナが予めDocker Hubに用意されていて、それと同じものがパソコンのDocker上にマウントされていなければ、ネット上のDocker Hubを自動で探し出してダウンロードして、Dockerにマウントしてくれるようです。
要するに、Hello Worldを表示させるためだけのアプリをDocker上にインストールしているものと思えばよいです。
こんな感じの結果になります。

(図28)

Hello World表示

Dockerのhello-worldコンテナの表示

この赤枠にあるように、
Hello from Docker!
と表示されればOKです。

これで、Docker上にイメージが作成されているか確認するには、以下のコマンドです。

docker images

こんな感じで表示されます。

(図29)

docker imagesコマンド表示

hello-worldのimageコマンド表示確認

hello-worldというイメージが作成されていますね。
では、コンテナが作成されているか確認します。
以下のコマンドです。

docker ps -a

こんな感じに表示されます。

(図30)

docker ps表示

hello-world のコンテナ表示確認

ここで、NAMES欄に表示された名前、wonderful_almeidaというのは、自動で割り当てられたコンテナ名です。

ところで、これではイメージとコンテナの違いがよく分らないと思いますが、イメージとコンテナの違いを知るためには、WordPressで2つのWebサイトを構築しないと理解しにくいと思います。ですから、今は分らなくて良いと思います。

これで、Dockerが正常動作していることが確認できたので、このコンテナとイメージを削除します。
まずは、必ずコンテナから削除するという決めごとを覚えておきます。
以下のコマンドです。

docker rm wonderful_almeida

rmはremoveの略で、wonderful_almeidaという名前のコンテナを削除するコマンドです。
以下のようになります。

(図31)

rmコマンド

hello-worldをrmコマンドでコンテナ削除

コンテナ名の代わりに、IDを使って削除してもOKです。
docker rm 8fb98894b3ab
という感じです。

次に、Dockerイメージを削除します。
先ほど、docker imagesコマンドで表示させた、REPOSITORY(リポジトリ)名をコピペして、rmiコマンドを使います。
remove image の略です。
以下の感じです。

docker rmi hello-world

もちろん、リポジトリ名ではなく、IMGAGE ID でも良いです。
すると、以下の感じになります。

(図32)

rmiコマンド

hello-world をrmiコマンドでイメージ削除

これで、docker ps -a や、docker images で、何も表示されなければ削除完了です。

これで、DockerのHello World動作確認は一通り終了で、正しくDocker Desktopがインストールできたということです。

では、次のページでは最大の目的、DockerでWordPressを構築して、最新版PHP環境にしてみたいと思います。

コメント

タイトルとURLをコピーしました