現在働いている開発現場でDockerを使った環境を利用しているため、Dockerについて勉強したことの備忘録を残しておきます。初めてDockerについて学習するうえで、wordpressとMySQLの環境構築がわかりやすかったので、その方法をまとめておきます。
初めてDockerの勉強をする場合は、「仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん 」という本がとてもわかりやすかったのでオススメです。この記事でDockerについて触れたけど物足りない・体系的にしっかりと勉強したいという人は購入してみてください。
また、本よりも動画を見てハンズオン(実際に手を動かしながら)で学びたい人はUdemyがオススメです。UdemyにはDockerに関する動画もあるので、オススメの動画を紹介しておきます。
記事の信頼性: 受託系IT企業で働いている「しう」がDockerについて学んだことの備忘録として記事を書いています。
Dockerの事前準備
DockerでwordpressとMySQLの環境構築をしていくので、Dockerのインストールが必要になります。まだできていない人はDockerのインストールをしてみてください。Dockerのインストール方法も後日記事にしていく予定です。
Dockerでwordpressを構築する流れ
Dockerでwordpressを構築する流れについてご紹介します!wordpressを構築する場合は次の流れでおこないます。
- Dockerでネットワークを作成する
- DockerでMySQLコンテナを作成する
- Dockerでwordpressコンテナを作成する
- ブラウザからwordpressにアクセスする
- 環境を元に戻す
この時に作成する順番も大切になるので気を付けましょう。もし上手くできなくてもDockerはコンテナを削除して、再度作成することのできるツールなので安心してください。(むしろコンテナを作って、不要になったり間違えた場合はコンテナを捨てることがDockerの基本的な使い方になります)
Dockerでネットワークを作成する
初めにDockerでネットワークを作成します!
【ネットワークのコンテナを作成・起動するコマンド】
docker network create ネットワーク名
network createコマンドでネットワークの作成をしていきましょう。ネットワークが作成されたか確認したい場合は、「network ls」コマンドを利用することで確認できます。今回はwindowsの例を紹介していますが、他のOSでも同様にできるかと思います。
windowsで実行するコマンド
docker network create wordpress000net1
windowsの実行結果
0ca3450be8e3e2ed6710c5b88b5dcb30f41e3b6d62b968050080484fd46ef19e
ネットワークの確認方法
docker network ls
NETWORK ID NAME DRIVER SCOPE
1bee88ffcf1a bridge bridge local
53b6093a3173 host host local
d28152158e8e none null local
0ca3450be8e3 wordpress000net1 bridge local
今回は、ネットワーク名をwordpress000netとしていますが、好きな名前で構いません。ネットワーク名を変えた場合は以降の流れで出てくるネットワーク名も同じ名前を使ってください。
DockerでMySQLコンテナを作成する
2番目にDockerでMySQLコンテナを作成します!
【MySQLのコンテナを作成・起動するコマンド】
docker run –name mysqlのコンテナ名 -dit –net=ネットワーク名
-e MYSQL_ROOT_PASSWORD=MySQLのrootパスワード
-e MYSQL_DATABASE=データベース領域名
-e MYSQL_USER=MySQLのユーザー名
-e MYSQL_PASSWORD=MySQLのパスワード MySQL
–character-set-server=文字コード
–collation-server=照合順序
–default-authentication-plugin=認証方式
「run」コマンドを実行してMySQLコンテナの作成・起動をおこないましょう。実行後にコンテナの作成ができているか確認したい場合は、「docker ps」コマンドを利用してください。
windowsで実行するコマンド
docker run --name mysql000 ^
-dit --net=wordpress000net1 ^
-e MYSQL_ROOT_PASSWORD=myrootpass ^
-e MYSQL_DATABASE=wordpress000db ^
-e MYSQL_USER=wordpress000user ^
-e MYSQL_PASSWORD=wordpresspass mysql:5.7 ^
--character-set-server=utf8mb4 ^
--collation-server=utf8mb4_unicode_ci ^
--default-authentication-plugin=mysql_native_password
windowsの実行結果
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
f003217c5aae: Pull complete
65d94f01a09f: Pull complete
43d78aaa6078: Pull complete
a0f91ffbdf69: Pull complete
59ee9e07e12f: Pull complete
・・・(以下省略)
MySQLコンテナの確認方法
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb628f8f0d8b mysql "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp mysql000
※注意
一度dockerを止めるとstopの状態になります。「docker start」のコマンドでコンテナを起動させる必要がある点に注意が必要です。
Dockerでwordpressコンテナを作成する
3番目にDockerでwordpressコンテナを作成します!
【wordpressのコンテナを作成・起動するコマンド】
docker run –name wordpressのコンテナ名 -dit –net=ネットワーク名 -p ポートの設定
-e WORDPRESS_DB_HOST=データベースのコンテナ名
-e WORDPRESS_DB_NAME=データベース領域名
-e WORDPRESS_DB_USER=データベースのユーザー名
-e WORDPRESS_DB_PASSWORD=データベースのパスワード wordpress
「run」コマンドを実行してwordpressコンテナの作成・起動をおこないましょう。今回も実行後にコンテナの作成ができているか確認したい場合は、「docker ps」コマンドを利用してください。
windowsで実行するコマンド
docker run --name wordpress000 ^
-dit --net=wordpress000net1 -p 8080:80 ^
-e WORDPRESS_DB_HOST=mysql000 ^
-e WORDPRESS_DB_NAME=wordpress000db ^
-e WORDPRESS_DB_USER=wordpress000user ^
-e WORDPRESS_DB_PASSWORD=wordpresspass wordpress:5.5
windowsの実行結果
Unable to find image 'wordpress:latest' locally
latest: Pulling from library/wordpress
c229119241af: Already exists
47e86af584f1: Pull complete
e1bd55b3ae5f: Pull complete
1f3a70af964a: Pull complete
0f5086159710: Pull complete
・・・(以下省略)
wordpressコンテナの確認方法
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
863f152f74c2 wordpress "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp wordpress000
c34560fbb558 mysql "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 3306/tcp, 33060/tcp mysql000
ブラウザからwordpressにアクセスする
環境を作成できたら、実際にアクセスできるか確認しましょう!
今回、wordpressのコンテナを作成するときにポート番号を8080で設定したので、その番号を使ってURLを指定してください。もし8085(自分で決めた数字)など他の数字を使っている場合は、その数字を使う必要があります。
ブラウザに入力するURLは「http://localhost:8080/」になります。httpsのようにhttpの後にsをつけるとエラーになるので気を付けてください。実際に上手くできていると次のような画面になります。
👇クリックで拡大できます
逆に上手くいかない場合は「Error establishing a database connection」というエラーが出てきます。
この場合は、スペルミスや利用しているバージョンの使用が変わっている可能性があるので注意してください。
※2022年4月時点では、MySQL:5.7、 wordpress:5.5 のバージョンでは上手く動いてくれています。
環境を元に戻す
最後に、全ての手順で動かせることを確認出来たら後片付けもしておきましょう!
次のコマンドでコンテナの停止・削除ができます。wordpressとMySQLについてはコンテナを停止した後でないと、コンテナの削除はできない(エラーになる)ので気を付けてください。
【コンテナの停止】
docker stop wordpress000
docker stop mysql000
【コンテナの削除】
docker rm wordpress000
docker rm mysql000
【ネットワークのコンテナの削除】
docker network rm wordpress000net1
コンテナのイメージも削除しておきたい場合は次のコマンドを使っておきましょう。
【コンテナのイメージの削除】
docker image rm wordpress
docker image rm mysql
Docker-compose.ymlファイルを使った方法
docker-compose.ymlファイルを利用した方法については学習中です。
現在働いている開発現場でもdocker-compose.ymlファイルを利用した方法を活用しているので、今後Dockerでdocker-compose.ymlファイルを利用したwordpressとMySQLの環境構築について勉強した内容をブログに残していこうと思います。
まとめ
いかがでしたか?今回は、DockerでのwordpressとMySQLの環境構築の方法について以下の順番で紹介しました。
- Dockerの事前準備
- Dockerでwordpressを構築する流れ
- Docker-compose.ymlファイルを使った方法
Dockerは開発環境を隔離することで、影響を与える範囲を限定出来たりとても便利です。実際に開発現場に入った時にDockerが使われていることもあるでしょう。
今回、DockerでのwordpressとMySQLのローカル環境での環境構築の方法について説明しました。この流れを通じて少しでもDockerについて親しみを抱いてもらうことができれば嬉しいです。
☟あわせて読みたい 「しう」のオススメブログ
コメント