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

回答編集履歴

1

回答が間違っていたので修正

2021/07/11 15:49

投稿

hentaiman
hentaiman

スコア6428

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