回答編集履歴
2
そもそも回答してなかったので、答えを記載
test
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
超長くなってしまいましたので結論から先に述べます。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
やってる事はどちらも同じ事で大差ありません。
|
6
|
+
|
7
|
+
VirtualBOXにDocker入りのマシンを立てて、それに指示を出してるだけです。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
後者は後述の通り、ホストOS内でDockerコマンドを打ち込むと、設定済のVirtualBOX内に渡されよしなに処理されるという塩梅です。
|
12
|
+
|
13
|
+
横着するなら後者が良いでしょうけど、Dockerの厳密な動作を要求するのであれば自分でVagrantで環境を立てて、
|
14
|
+
|
15
|
+
SSHで中に入ってDockerコマンドを打ち込む前者の方が良いと思います。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
|
22
|
+
|
1
23
|
> MacOSだけでやればいいような気もします
|
2
24
|
|
3
25
|
|
1
DockerのWindows版、MacOS版が出たので全面的に回答を見直し
test
CHANGED
@@ -2,9 +2,17 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
それが出来るなら
|
5
|
+
それが出来るならだれも苦労しないんですよ!!!
|
6
6
|
|
7
|
+
|
8
|
+
|
9
|
+
何故かというと、DockerはLinuxのみで使用されている技術が含まれており、
|
10
|
+
|
11
|
+
他のOSの(Windows、MacOS)では動かす事が出来ないのです。
|
12
|
+
|
13
|
+
|
14
|
+
|
7
|
-
|
15
|
+
以下、[Wikipediaの記事](https://ja.wikipedia.org/wiki/Docker)から抜粋していきます
|
8
16
|
|
9
17
|
|
10
18
|
|
@@ -12,15 +20,41 @@
|
|
12
20
|
|
13
21
|
|
14
22
|
|
15
|
-
Linux
|
23
|
+
速度を出す為の工夫的な意味で、現状Linuxでしか動作しません。
|
16
24
|
|
17
25
|
|
18
26
|
|
19
|
-
|
27
|
+
---
|
20
28
|
|
21
|
-
(boot2docker改めdocker-machineとか、VirtualBOXで立ち上げたマシンをラッピングしてあたかもローカルにDockerコマンドを再現したかのように見せているだけ)
|
22
29
|
|
30
|
+
|
31
|
+
> MacOSにDockerクライアントをインストールし、そこにOSやらミドルウェアやらぶち込んでいく
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
これはdocker-machineの事を指しているのだと思います。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
docker-machine(旧名:boot2docker)というMacOSでDockerコマンドを使えるTOOLが存在します。
|
40
|
+
|
41
|
+
その実体はVirtualBOXをラッピングしたものなので、Vagrantで立ち上げたマシン内でDockerコマンドを叩くのとほぼ同等の事をしています。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
なので質問内容の1と2はほぼ同じアプローチなのです。
|
46
|
+
|
47
|
+
VirtualBOXのフォルダ共有機能が標準使われており、これは(便利ではあるものの)低速ですし、パーミッションのやり取りが難しく結構不具合が出ます。
|
48
|
+
|
49
|
+
|
50
|
+
|
23
|
-
|
51
|
+
しかし、どちらもDockerの持つメリットの内、動作が軽いというかなり大きなメリットが消し飛んでしまっています。
|
52
|
+
|
53
|
+
ネイティブのWindowsやMacOSで使えればよいのですが…
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
---
|
24
58
|
|
25
59
|
|
26
60
|
|
@@ -28,28 +62,74 @@
|
|
28
62
|
|
29
63
|
|
30
64
|
|
31
|
-
|
65
|
+
WindowsやMacOSも様々な仮想環境用の機能が備わっているので、Windows/MacOS版のDockerも開発されているようです。
|
32
66
|
|
33
|
-
|
67
|
+
先日クローズβだかをやっており、βテストのメールアドレスに登録しましたが何も音沙汰が…5/5に来ました!
|
34
|
-
|
35
|
-
先日クローズβだかをやってたと思います。
|
36
68
|
|
37
69
|
|
38
70
|
|
39
|
-
|
71
|
+
[https://beta.docker.com/](https://beta.docker.com/)で登録するとアプリのURLとトークンIDをもらって使えます
|
72
|
+
|
73
|
+
※あくまでβなので動作しない可能性もあります。
|
40
74
|
|
41
75
|
|
42
76
|
|
43
|
-
|
77
|
+
---
|
44
|
-
|
45
|
-
ほとんどオーバーヘッドがなく仮想環境を動かすハイテクな技術が使われています。
|
46
78
|
|
47
79
|
|
48
80
|
|
49
|
-
|
81
|
+
> むしろ本番環境(が例えばAmazon-linuxであれば)と同じEC2上(もしくはVagrantでAmazon-linuxを立ち上げた上)
|
50
82
|
|
51
|
-
ローカル環境と本番環境で適用すれば差異は出ませんよね?
|
52
83
|
|
53
|
-
Vagrant+VirtualBOXでも本番環境に入れて動かす事は出来ますが、オーバーヘッドが凄まじく現実的では無かった為結局Vagrantは本番環境では使われていないのです。
|
54
84
|
|
85
|
+
それも解決策の一つです。
|
86
|
+
|
87
|
+
でも、それDockerでやる意味ある?
|
88
|
+
|
89
|
+
(Dockerをゴリゴリ触っている人には環境の依存関係がさっぱりする等のメリットは見いだせます)
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
何故ならば、EC2で立ち上げた環境でテストして、スナップショットからマシンパワーのある環境を複製してそれを本番環境とすれば良いからです。
|
94
|
+
|
95
|
+
サーバーの状態はDockerfileで記述出来ますが、Vagrantfileでのプロビジョニングを徹底すれば同じ事ですしね。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
Dockerを使う場合、ベンダーロックインを避けるという裏の目的もあります。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
---
|
104
|
+
|
105
|
+
|
106
|
+
|
55
|
-
|
107
|
+
> 本番環境と同じインスタンスでDockerを動かして色々Image入れてコンテナを作ったほうが厳密なのではないかと思えます。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
同じスナップショットから生成した仮想マシン…という条件ならば、
|
112
|
+
|
113
|
+
どの環境で動かしても基本的には全く同じ動作するはずです。
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
なので極端な例を挙げると、
|
118
|
+
|
119
|
+
本番環境にVagrant+VirtualBOX入れて、Apache専用マシンや、MySQLマシンを動かせばいいんですよ。
|
120
|
+
|
121
|
+
※ただしオーバーヘッドがひどいので実際にやると上司に頭はたかれますけど
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
DockerはVagrant+VirtualBOXと同じただの仮想環境です。
|
126
|
+
|
127
|
+
DockerのimageはVagrantのboxとほぼ同等、
|
128
|
+
|
129
|
+
DockerのcontainerはVagrantのmachineとほぼ同等。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
Linuxでしか使えない素晴らしい技術をふんだんに使って、
|
134
|
+
|
135
|
+
オーバーヘッドのコストをほぼ0まで押さえ込んでいる程度の違いしかありません。
|