質問: Dockerを最近はじめた者です。 Dockerを使った開発 例えばLAMP環境で開発をするとしたとき、 apacheのコンテナ、mysqlのコンテナ、phpのコンテナといった具合に、複数コンテナを利用して開発を行っていくと思います。 それぞれのコンテナを用意して...という開発ではなく 単純に最新のphpだけを試したいとき、どのような流れでプログラムの実行までするのでしょうか? 単純に考えると、 * phpのdockerイメージを取得 * コンテナを起動 * -itにてコンソール接続 * コンテナ内でphpのコード記述 * コンテナ内でphpを実行 このような方法くらいしか思いつきません。普通の仮想マシン(vagrant+virtualbox)っぽいなと思いました。 皆さんこのような使い方なのでしょうか? イメージによってはviなどのエディタがなく編集できないため、エディタを入れるところからということになります。 dockerで簡単に環境を用意したにもかかわらず、viのインストールからととても面倒な気がします。 スタンダードな方法を知らないので、教えていただきたいです。 --- 追記です。 もう一つ考えられる方法としては、 ディレクトリをマウントし、プログラムの記述はホストOSで行い、実行はdockerコマンドを使って行うというものもあります。 docker run exec -it test php index.php ↑コマンドは正確ではありません。 このくらいしか考えつきませんでした。
回答: ホスト側のファイルを修正するか、ゲスト側に入って編集するかは人の好き好きですが、dockerって基本使い捨てのイメージがあるのでホストのディレクトリをマウントしておいたほうがいいと思います。 LAMP環境でということですがホスト側のApacheからゲスト側のPHPは実行できないのでApache使う場合はコンテナが必要になります。もしくはホスト側にもPHP置くかですがそれだとdockerの意味がないですね。PHPのビルドインサーバーを使うならPHPのコンテナだけでよいです。 MySQLはネットワーク経由でのアクセスならホストでもコンテナでも大丈夫だと思います。 Dockerを使う理由がはっきりしてないと開発環境を仮想にするのはあまり意味のないことになりますね。 PHPの複数バージョンでのテストが必要とか、データベースを常に同じ状態のものでテストしたいとか、ホストと異なるOSでの実行環境が必要とか... このようなことが必要ないのであれば普通にホスト側で開発したほうが楽だと思いますよ。