BLOG
Dockerを使った開発がいいよね

昔はVagrant と Chef と VirtualBox で開発環境を作ってたな…… などと、ちょっとおセンチな気分になったので、最近の開発環境について少し。
いろいろインストールして自分の開発環境を汚すのが嫌いで、LAMPもWAMPもMAMPも苦手。
LAMPとは Linux(OS) Apache(Webサーバ) MySQL(データベース) PHP(開発言語) をセットでインストールして管理する開発環境のこと。
WAMPは上記のをWindows、MAMPは同じくMacで動かすもの(XAMPPってのもあるけどXは、いろんなOSって意味)。
開発環境なんて手順通りインストールして、使い終わったら手順通りアンインストールすれば問題ないはずなんだけど、これも必要あれも必要となってガチャガチャやってるうちに動かなくなって、全部やりなおしってことも少なくない。
最後には元に戻すのが大変になって、OSごと再インストールするしかないなんてこともある。
OSを再インストールして環境作り直しなんて、一日仕事になるし、そもそもPC使えないなんて耐えられないので、最初から環境を汚さなければいいって考えになる。
そこで、PCの中に開発用の仮想マシン(PCの中にPCが入ってる感じ)を用意して、その中で開発すればいいって賢い人は考えたらしい。
それがVirtualBoxで、Vagrantってツールで管理して、いろんな開発用ツールのインストールをChefってツールにやらせてた。
そのやり方だと、上記3つのインストールでいいし、シェフ(Chef)の料理本(Cookbook)ってファイルに設定を書いておくだけで、同じ環境を作り直せた。
ただ問題がいくつかあって、ChefがRuby製なのでCookbookを読み書きするのに、多少Rubyの知識が必要なこと。
PCの中でPCを動かすことになるので、HDD容量、メモリ容量、CPU使用率などを余分に使うことになる。
こういうのをオーバーヘッドというけど、意外とバカにならなかったので、賢い人たちはさらに考えた。
PCの中でPC動かすのやめて、開発環境をコンテナに閉じ込めて、そこから元のPCのOSを使えばよくね?
というわけでできたのがDocker。
これがすごく便利で、Dockerfileに設定を書いておくと、コンテナの中に追加でインストールしたツールが閉じ込められて、その中で開発できる。
同時に何個もコンテナを作ってネットワークで繋ぐなんてこともできる。
コピーするのも簡単だし、いらなくなったら捨てるのも簡単。
コンテナごと本番環境に設置して動かすなんてのも、最近できつつある。
つくづく楽になったなと思う。
Related article
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |