あとでもう少しまとめる。
自分:Docker全然知らないけど、Webのコーディングする人(タスクランナー動かせるけどプログラム分かりません)
やりたいこと:PHPとかのサーバー環境をまるっと再現して、ローカルで開発したい。
▼ Docker for Mac をインストール
▼ イメージを探して、ローカルにインストール
公式のイメージで古いバージョンは、tag
で探す。
https://hub.docker.com/_/php?tab=tags&page=174
今回探してたのが、phpの5.2だったけど、公式にはもうなかった。
一旦、PHP5.4 + apacheを入れる。
docker pull php:5.4.34-apache
▼ イメージ一覧 をみる
docker images
docker image ls
▼ コンテナ作成
docker run
-v (--volume) オプションは、ホストのボリュームまたはディレクトリをコンテナに割り当てます。複数指定可能です。-v ホスト側:コンテナ側 で指定しますが、ホスト側が / で始まる名前の場合はディレクトリを指定します。
Web開発(ページ作成)においては、
-v <開発フォルダのドキュメントルートフォルダ>:<コンテナのドキュメントルート>
という理解。
▼ ホスト?とコンテナ?マウント?
概念的なものが分からなかったのでここ結構つまづきつつ。
参考サイトに分かりやすい図があったので引用。
? コンテナのルートってどうやって知る??
→ 適当にimage 作って作成したコンテナに bash で入ってルートを確認して ↑ボリュームオプションを設定したコンテナを作り直した。これは正しく無い気がする…。
▼ 作成したコンテナに bash で入る
docker container exec -ti "NAME" bash
▼ 作成したコンテナから抜ける
▼ コンテナの停止
docker stop
▼ コンテナの再起動
docker restart "NAME"
▼ ハマった点
古い php を動かそうとしたら、 mb系の関数が使えない。
→ Dockerの公式PHPコンテナでmb系関数を使うにはmbstringモジュールをインストールします
▼ いろいろ
動かすまで行けた。
php5.2は、他の人がアップしているイメージが結構ありそうではあるんだけど。動かないことが多い。と言うかドキュメントがないものが多くて、ちょっと何していいかわかんなかった。