回答編集履歴
1
回答が間違っていたので修正
answer
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
最初に回答が間違っていたので改めて[公式ドキュメント](https://docs.docker.jp/engine/userguide/networking/dockernetworks.html)を元に**手元で試して確認**しました
|
2
|
+
`windows`で試した手順なので、windowsじゃない場合は`findstr`を`grep`に置き換えるなどして適当に読み替えてください
|
3
|
+
以下、docker networkを明示的に割り当てない場合
|
4
|
+
|
5
|
+
#### デフォルトで使っているネットワークの確認
|
6
|
+
```powershell
|
7
|
+
docker network inspect bridge
|
8
|
+
# bridgeじゃない場合は network ls でネットワーク名を確認
|
9
|
+
|
10
|
+
~~~中略~~~
|
11
|
+
"Config": [
|
12
|
+
{
|
13
|
+
"Subnet": "172.17.0.0/16",
|
14
|
+
"Gateway": "172.17.0.1"
|
15
|
+
}
|
16
|
+
]
|
17
|
+
~~~中略~~~
|
18
|
+
```
|
19
|
+
#### 各コンテナに割り当てられているIPの確認
|
20
|
+
```powershell
|
21
|
+
docker container inspect pythonコンテナ名|findstr 172
|
22
|
+
~~~中略
|
23
|
+
"Gateway": "172.17.0.1",
|
24
|
+
"IPAddress": "172.17.0.3",
|
25
|
+
"Gateway": "172.17.0.1",
|
26
|
+
"IPAddress": "172.17.0.3",
|
27
|
+
~~~
|
28
|
+
```
|
29
|
+
この例で言うと`172.17.0.3`の部分がIPです。
|
30
|
+
|
31
|
+
#### nginxのconfの修正
|
32
|
+
```
|
33
|
+
upstream django {
|
34
|
+
ip_hash;
|
35
|
+
server 172.17.0.3:8001;
|
36
|
+
}
|
37
|
+
```
|
38
|
+
|
39
|
+
|
40
|
+
# 旧回答
|
41
|
+
|
1
42
|
> docker-composeを使用せずに環境構築しており
|
2
43
|
|
3
44
|
その場合は明示的に`docker network`を設定しないと
|
@@ -8,16 +49,10 @@
|
|
8
49
|
}
|
9
50
|
|
10
51
|
のようにコンテナ名を指定しての通信は出来ません
|
11
|
-
```
|
12
|
-
upstream django {
|
13
|
-
ip_hash;
|
14
|
-
server 127.0.0.1:8001;
|
15
|
-
}
|
16
|
-
```
|
17
|
-
のようにIPに書き換えるか、networkを設定する事で繋がるようになります
|
52
|
+
~~のようにIPに書き換えるか、networkを設定する事で繋がるようになります
|
18
53
|
今回はIPに書き換えるのが簡単でよろしいでしょう
|
54
|
+
~~
|
19
55
|
|
20
|
-
|
21
56
|
> 少し気になるエラー
|
22
57
|
今回のuwsgiと関係があるかはわかりませんが、Pythonコンテナ上でsystemctlを起動させようとすると以下のエラーが出ていることが少し気になっています。
|
23
58
|
$ systemctl
|