自分で一から Docker を操作して PHP と SQL の環境構築をするにはどうすればいいのですか?

2021年8月27日
ユーザー

こちらの PHP のレッスンの動画を見ながら勉強をしているのですが、実際に自分で一から Docker を操作して PHP と SQL の環境構築をしてみたいのですが、やり方が分かりません。

例えば、PHP で todo 管理アプリを作ろうの関数編で、docker-compose.ymlというファイルに色んな設定情報が書かれていますが、書き方のフォーマットがあるのかや、これは絶対に必要な要素であるとか、書く順番、コンテナが仮に PHP 以外のコンテナに変わった場合の書き方の違いなど分かりません。

YouTube なども見たり、サイトを検索したりしてみるのですが、PHP と SQL の環境構築の仕方という完全に合致したものが見つからず、真似してやってみることもできません。SQL とワードプレスなどの組み合わせであったりなど別の組み合わせの場合で解説されていても、PHP と SQL の環境構築をしたいのに、それをどう活かして環境構築をするのか結局わかりません。

Docker Hub からコンテナをダウンロードして使用するなど色々載っていますが、それを活かしてDocker を使う方法が分かりません。

まとめますと、レッスンでもともと作成してあるファイルをダウンロードして勉強していますが、作成されているファイルのように、自分で 1 から Docker を使って PHP と SQL の環境構築をしたいのですが、それを可能にする勉強方法、オススメの本、おすすめのサイトなどありましたら教えて頂きたいです。

図など出来る限り分かりやすく解説されているものでないとなかなかとっつきにくい為そういったものを探してはいるのですが、どれがいいのか分からず結局そこで二の足を踏んでいます。

お手数ですが、何かアドバイス等頂けますと幸いです。。

先生

ご質問ありがとうございます。

Docker はコンテナ環境と呼ばれますが、結局のところサーバー環境を構築するツールです。したがって、ご自身で Dockerfile や docker-compose.yml を作ろうとする場合、サーバー周辺の知識が必要となります。

例えば Amazon EC2 やさくらの VPS といったサービスで、実際のサーバー環境を構築したことはありますでしょうか?そのような経験や知識がない場合、Docker を理解できるまでには長い道のりがかかると推測されます。

調べてみたところ、そういった経験のない方向けに書かれた『プログラマのための Docker 教科書』という書籍がありますね。2018年発行の書籍のため多少扱っている Docker のバージョンが古いかもしれませんが、さほど大きな変更点はないかと思います。ただ、書籍は人によって向き不向きがありますので、購入する前に書店で内容を確認することをおすすめいたします。

また、個人出版の書籍でも良いなら『技術書典』で探してみるのもよいでしょう(こちらは内容の確認は難しいかもしれません)。それから「図など出来る限り分かりやすく解説されているもの」としては『マンガでわかる Docker』のシリーズもありますね。

基本を一から学習することはとても大切ですがどうしても時間がかかります。なので並行して、レッスンで配布されているファイルを読み解きつつ、自分の構築したい環境向けにカスタマイズしてみるのも良いでしょう。ただし Docker の操作やサーバー周辺の基礎知識はどうしても必要になりますので、そのあたりを書籍やネットの情報で補いつつ進めていく必要があるかと思います。

なお、Docker の基本については(古いレッスンではありますが)以下のレッスンも参考にしてみてください。内容が古いので実際に手を動かすというよりもざっと動画を見るだけでよいと思います。

これでイメージがついたら書籍などをあたってみるのが良いでしょう。

ユーザー

ご返答ありがとうございます。
Docker はサーバー周辺の知識が必要なんですね。

例えば Amazon EC2 やさくらの VPS といったサービスで、実際のサーバー環境を構築したことはありますでしょうか?そのような経験や知識がない場合、Docker を理解できるまでには長い道のりがかかると推測されます。

おっしゃって頂いたようなサーバー環境を構築したことは全くありません。
本のおすすめありがとうございます。一度書店にて確認してみたいと思います。
「技術書典」というのは今まで聞いたことがなかったので、一度探してみたいと思います。
レッスンも参照しながら頑張りたいと思います。

ちなみに、今 PHP のレッスンを見ながら勉強しているのですが、実際環境構築ができないと PHP を勉強していても使えないということになってしまうと思うと、先に PHP を勉強しても意味がないのではないかと思い、モチベーションを保つのが難しくなってしまいます。環境構築がまだできずとも、PHP の知識を先に勉強するメリットはあるのか、それとも環境構築の勉強を先に進めるべきなのか迷っています。どちらが効率よく進めることができるか何かアドバイスがありましたら教えていただきたいです。

HTML やCSS、JavaScript はすぐに自分でブラウザや VS Code で使えるのであまり気にはしていませんでしたが、PHP だとそういうわけにもいかないので迷っています。

先生

自分で一から Docker を操作して PHP と SQL の環境構築をしてみたい

とのことでしたので、先のように回答いたしましたが、PHP で作ったプログラムを公開する手段は何も Docker だけではありません。

例えば公開先としてレンタルサーバーを利用すると、PHP のファイルをサーバーにアップロードし、MySQL のテーブルを管理画面などから作成するだけで(多少のプログラムの設定変更は必要かもしれませんが)作成したサイトを公開できます。

なので、ひとまず手元の開発環境ではレッスンで用意された Docker 環境を利用し、公開するサーバーは Docker を使わずにレンタルサーバーを利用するというのも一つの手かと思います。

他のレッスンに寄せられたご質問となりますが、以下の回答も参考にしてみてください。

ユーザー

ご丁寧にありがとうございます!
Docker が便利ということを記事などでよく見ていたので Docker がないとという頭になってしまっていましたが、レンタルサーバーを借りて PHP を公開する方法もあるなど、PHP を公開する方法にはいくつかの手段があるということを理解できました。

おっしゃって頂いたようにレッスンでの Docker で色々試していければと思います。

ありがとうございました。

この質問はユーザーによって解決済みになりました