質問編集履歴
4
edit
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
-
###疑問1:
|
75
|
+
###疑問1:コンテナの中身の違い
|
76
76
|
|
77
77
|
```linux
|
78
78
|
|
3
追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
dockerのコンテナについて
|
1
|
+
dockerのコンテナの中身について
|
test
CHANGED
File without changes
|
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
|
5
5
|
『コンテナは、イメージから作成されたものであり、作業履歴を保存するもの』っと書かれていたので、作業履歴**すべて**(手で打ったコード等)を保存するものだと思っていました。
|
6
6
|
|
7
|
-
しかし実際、コンテナは**コンテナを動かしたコマンド(作業履歴)を保存するもの**である
|
7
|
+
しかし実際、コンテナは**コンテナを動かしたコマンド(作業履歴)を保存するもの**であると```docker ps -a```で分かったのですが、以下の疑問が出ました。
|
8
8
|
|
9
|
-
|
9
|
+
|
10
10
|
|
11
11
|
###環境
|
12
12
|
|
@@ -108,7 +108,7 @@
|
|
108
108
|
|
109
109
|
"controller",
|
110
110
|
|
111
|
-
"
|
111
|
+
"StaticPages",
|
112
112
|
|
113
113
|
"home"
|
114
114
|
|
@@ -124,9 +124,9 @@
|
|
124
124
|
|
125
125
|
```generate controller```や```destroy controller```をするには、まず```rails new```でアプリケーションを作成する必要があると思いますが、```rails new```コンテナは別にあります。
|
126
126
|
|
127
|
-
仮に、generateやdestroyをしたい場合には、```rails new```コンテナを継承しなければ出来ないと思うのですが、『各コンテナは、個々が独立しており、かつ、他のコンテナのコマンドを有していない』と考えているため、
|
127
|
+
仮に、generateやdestroyをしたい場合には、```rails new```コンテナ(コマンド)を継承しなければ出来ないと思うのですが、『各コンテナは、個々が独立しており、かつ、他のコンテナのコマンドを有していない』と考えているため、```rails new```無しで```generate & destroy```が出来てしまうというおかしな考えになってしまいました。
|
128
128
|
|
129
|
-
私の考えが
|
129
|
+
私の考えがおかしいのは、間違いないのですが、どこが間違っているのかを調べても見つからないため、困っています。
|
130
130
|
|
131
131
|
|
132
132
|
|
1
追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
コンテナ
|
1
|
+
dockerのコンテナについて
|
test
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
閲覧ありがとうございます!
|
2
2
|
|
3
|
-
先日、dockerでのデプロイ方法について質問したはいいが、dockerについての理解不足が露呈し、丁寧な回答に全くついていけなかった者です。
|
4
|
-
|
5
|
-
なんとなくdockerを分かっていたつもりでしたが、実際には分かっていない&理解していない状態で、その原因はコンテナの理解不足にあると考え質問させていただきました。
|
6
3
|
|
7
4
|
|
5
|
+
『コンテナは、イメージから作成されたものであり、作業履歴を保存するもの』っと書かれていたので、作業履歴**すべて**(手で打ったコード等)を保存するものだと思っていました。
|
6
|
+
|
7
|
+
しかし実際、コンテナは**コンテナを動かしたコマンド(作業履歴)を保存するもの**であることに気が付きました。
|
8
|
+
|
9
|
+
間違っているかもしれませんが、このような理解で以下の疑問が出ました。
|
8
10
|
|
9
11
|
###環境
|
10
12
|
|
@@ -70,21 +72,13 @@
|
|
70
72
|
|
71
73
|
|
72
74
|
|
73
|
-
###前提
|
74
|
-
|
75
|
-
『コンテナは、イメージから作成されたものであり、作業履歴を保存するもの』っと書かれていたので、作業履歴**すべて**(手で打ったコード等)を保存するものだと思っていました。
|
76
|
-
|
77
|
-
しかし、```docker-compose run web rails g controller A home```と```docker-compose run web destroy controller A home```をした後に、```docker ps -a ```をすると別々のコンテナが作成されており、コンテナは、**コンテナを動かしたコマンド(作業履歴)を保存するもの**であることに気が付きました。
|
78
|
-
|
79
|
-
間違っているかもしれませんが、このような理解で以下の疑問が出ました。
|
80
|
-
|
81
|
-
|
82
|
-
|
83
75
|
###疑問1:なぜdocker-compose run web で動くのか
|
84
76
|
|
85
77
|
```linux
|
86
78
|
|
79
|
+
$ docker-compose run web rails g contoller StaticPages home
|
80
|
+
|
87
|
-
$ docker inspect generate
|
81
|
+
$ docker inspect [generate contoller container ID]
|
88
82
|
|
89
83
|
"Cmd": [
|
90
84
|
|
@@ -94,7 +88,7 @@
|
|
94
88
|
|
95
89
|
"controller",
|
96
90
|
|
97
|
-
"
|
91
|
+
"StaticPages",
|
98
92
|
|
99
93
|
"home"
|
100
94
|
|
@@ -102,7 +96,9 @@
|
|
102
96
|
|
103
97
|
|
104
98
|
|
99
|
+
$ docker-compose run web rails g destroy StaticPages home
|
100
|
+
|
105
|
-
$ docker inspect destroy
|
101
|
+
$ docker inspect [destroy controller container ID]
|
106
102
|
|
107
103
|
"Cmd": [
|
108
104
|
|
@@ -122,11 +118,17 @@
|
|
122
118
|
|
123
119
|
|
124
120
|
|
125
|
-
上記のコマンドより、各コンテナは個々が独立しており、かつ、他のコンテナのコマンドを有していないと考えたのですが
|
121
|
+
上記のコマンドより、各コンテナは、個々が独立しており、かつ、他のコンテナのコマンドを有していないと考えたのですが(destroyコンテナはgenerate controllerコマンドを有してない)
|
126
122
|
|
127
|
-
docker-compose
|
123
|
+
なぜ```docker-compose run web **** ```で動くのですか?
|
128
124
|
|
129
|
-
|
125
|
+
```generate controller```や```destroy controller```をするには、まず```rails new```でアプリケーションを作成する必要があると思いますが、```rails new```コンテナは別にあります。
|
126
|
+
|
127
|
+
仮に、generateやdestroyをしたい場合には、```rails new```コンテナを継承しなければ出来ないと思うのですが、『各コンテナは、個々が独立しており、かつ、他のコンテナのコマンドを有していない』と考えているため、矛盾が生じてます。
|
128
|
+
|
129
|
+
私の考えが間違っているのは、間違いないのですが、どこが間違っているのかを調べても見つからないため、困っています。
|
130
|
+
|
131
|
+
|
130
132
|
|
131
133
|
|
132
134
|
|
@@ -134,9 +136,9 @@
|
|
134
136
|
|
135
137
|
rails tutorialを勉強している間、何も考えずに```docker-compose up```と```localhost:3000```をして、勉強過程をブラウザ確認していました。
|
136
138
|
|
137
|
-
|
139
|
+
勉強過程がブラウザで確認できたのは、volumeでホスト側のファイルをゲスト側にマウントしているからであり、実際に自分が打ったコードはコンテナ(ゲスト側)が有しているわけではない。っという事ですか?
|
138
140
|
|
139
|
-
|
141
|
+
|
140
142
|
|
141
143
|
|
142
144
|
|