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

回答編集履歴

2

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

2018/04/24 09:16

投稿

miyabi-sun
miyabi-sun

スコア21461

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ではApacheMySQLのサーバソフトを同じマシンに入れてしまうという設計が一般的でした
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台MySQL1台という構成は不可能はありませんが、
33
+ 重いIDEやブラウザとセットで利用する場合はそれなりに高性能なスペックのマシンが要求されます。
34
+
35
+ 従って、実際の開発環境構築時は1台だけ立ち上げて、
36
+ その1台にシステムを構築する全てのソフトウェアをぶち込む設計が一般的でしょう。

1

誤字修正

2018/04/24 09:16

投稿

miyabi-sun
miyabi-sun

スコア21461

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という掛け算の構成が必要であり、莫大な量になってしまいます。