質問するログイン新規登録

回答編集履歴

2

ところどころ変だったので調整

2018/04/24 09:16

投稿

退会済みユーザー
answer CHANGED
@@ -2,30 +2,35 @@
2
2
 
3
3
  YESかNOかで言えばその通りなのでYES。
4
4
 
5
- 結論から言えばDockerはオーバヘッドが無くてコンテナをいくらでも作れます。
5
+ 結論から言えばDockerはオーバヘッドがほぼ無くてコンテナを沢山作れます。
6
- じゃあPHPとMySQLはわざわざ同じサーバにしなくて良いよねという文化なのです。
6
+ じゃあPHPとMySQLはわざわざ同じコンテナで動かさなくても良いよねという文化なのです。
7
7
 
8
8
  ---
9
9
 
10
10
  以下ちょっと詳細な解説
11
11
 
12
- DockerはVirtualBOXと同じく仮想マシンを使ったWebサーバを構築する技術です。
12
+ Dockerは大枠で見ればVirtualBOXと同じく仮想マシンを生成する技術です。
13
- 一見Dockerでも「MySQLやアパッチ等をいれて実装する」のが良さそうに思えますが違います。
13
+ VirtualBOXでは1台のマシンに「MySQLやアパッチ等をいれて実装する」のが一般的ですね。
14
- Dockerの詳細は下の記事に丸投げします。
14
+ Dockerでも同様の事がしたくなりますが事情が異なります、
15
15
 
16
16
  参考サイト: [今からでも間に合うDockerの基礎。コンテナとは何か、Dockerfileとは何か。Docker Meetup Tokyo #2](http://www.publickey1.jp/blog/14/dockerdockerfiledocker_meetup_tokyo_2.html)
17
17
 
18
- 逆にVirtualBOXはCPUから一部切り出した仮想CPU、メモリから一部切り出した仮想メモリという風に、
19
- ホストマシンから様々な機能を切り出して制限し、その切り出した能力で仮想マシンを作るので非常に低速で遅いのです。
18
+ Dockerは別に仮想マシン(コンテナ)を何台立ち上げても(ローレベルでは)仮想マシンではないのでオーバーヘッドが殆どありません。
20
- その為、Vagrant+VirtualBOXではApacheとMySQLのサーバソフトを同じマシンに入れてしまうという設計が一般的でした。
19
+ ポコポコとこれはApache(+PHP)専用マシン、MySQL専用マシンという風に機能毎にコンテナを作っても構いません。
21
20
 
21
+ 例えばPHPは7.2.1の新しい構文を使いたいけど、
22
- Dockerは別に何台作っても(ローレベルでは)仮想マシンではないのでオーバーヘッドは殆どありません。
22
+ MySQLは枯れてる方が嬉しいから5.6使おう…みたいな選択も簡単に出来るわけですね。
23
23
 
24
- PHPは7.2.1の新しい構文を使いたいけど、MySQLは枯れてる方が嬉しいから5.6使おう…みたいな選択も簡単に出来るわけですね。
25
24
  各サーバソフトはDcokerHubというサイトでバージョン別に管理されてますので、
26
25
  特殊なモジュールを導入しない限りはDockerHubから落として使うだけで事足ります。
27
- (PHPは日本語モジュールやMySQL用モジュール等が必要で個別にインストールする形になりそうですが…)
28
26
 
27
+ ---
28
+
29
- 逆にVirtualBOXはPHPだけ7.2.1を使ってMySQLは5.6…みたいな我儘を出すと、
29
+ VirtualBOXはCPUから切り出した仮想CPU、メモリから切り出した仮想メモリ、という風にホストマシンから様々な機能を切り出して専有します。
30
- スナップショットがn*mという掛け算の構成が必要であり、莫大な量になってしまいます。
30
+ その切り出した能力を集めて1台の仮想マシンを作るので非常にコストが重く低速であり、ホストマシンにも多大な負荷をかけてしまいます。
31
+
31
- 従って、AnsibleのPlaybookファイルを作って自分で構築する…という風に、自分のサーバは自分で構築するという選択肢が一般的です。
32
+ Dockerと同じようにApacheで1台、MySQLで1台という構成は不可能ではありませんが、
33
+ 重いIDEやブラウザとセットで利用する場合はそれなりに高性能なスペックのマシンが要求されます。
34
+
35
+ 従って、実際の開発環境構築時は1台だけ立ち上げて、
36
+ その1台にシステムを構築する全てのソフトウェアをぶち込む設計が一般的でしょう。

1

誤字修正

2018/04/24 09:16

投稿

退会済みユーザー
answer CHANGED
@@ -22,8 +22,9 @@
22
22
  Dockerは別に何台作っても(ローレベルでは)仮想マシンではないのでオーバーヘッドは殆どありません。
23
23
 
24
24
  PHPは7.2.1の新しい構文を使いたいけど、MySQLは枯れてる方が嬉しいから5.6使おう…みたいな選択も簡単に出来るわけですね。
25
- 全部DcokerHubというサイトで各サーバソフトはバージョン訳されて管理されてますので、
25
+ 各サーバソフトはDcokerHubというサイトでバージョン別に管理されてますので、
26
26
  特殊なモジュールを導入しない限りはDockerHubから落として使うだけで事足ります。
27
+ (PHPは日本語モジュールやMySQL用モジュール等が必要で個別にインストールする形になりそうですが…)
27
28
 
28
29
  逆にVirtualBOXはPHPだけ7.2.1を使ってMySQLは5.6…みたいな我儘を出すと、
29
30
  スナップショットがn*mという掛け算の構成が必要であり、莫大な量になってしまいます。