回答編集履歴

2

具体例を追記

2021/11/10 09:11

投稿

surface_0
surface_0

スコア497

test CHANGED
@@ -7,3 +7,77 @@
7
7
  docker-composeでスタックされたコンテナの場合、自動的にネットワークが作成されて、暗黙に同一ネットワークに接続されることになりますが、
8
8
 
9
9
  それとは別に立ち上げたコンテナから通信する場合は、あらかじめ作成したネットワークに両者を接続するようにする必要があります。
10
+
11
+ (docker-composeが生成するネットワーク名を調べて接続してもかまいません)
12
+
13
+
14
+
15
+ ## 追記
16
+
17
+
18
+
19
+ 具体的な手順の例としては以下のような感じです。
20
+
21
+
22
+
23
+ ### ネットワーク作成
24
+
25
+ ```
26
+
27
+ $ docker network create mysql-network --attachable
28
+
29
+ ```
30
+
31
+
32
+
33
+ ### docker-compose.ymlを修正して起動
34
+
35
+ ```yml
36
+
37
+ version: "3.8"
38
+
39
+
40
+
41
+ services:
42
+
43
+ mysql:
44
+
45
+ image: mysql:5.7
46
+
47
+ environment:
48
+
49
+ MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
50
+
51
+ networks:
52
+
53
+ - mysql-network
54
+
55
+
56
+
57
+ networks:
58
+
59
+ mysql-network:
60
+
61
+ external: true
62
+
63
+ ```
64
+
65
+
66
+
67
+ ```
68
+
69
+ $ docker-compose up -d
70
+
71
+ ```
72
+
73
+
74
+
75
+ ### phpMyAdmin起動
76
+
77
+ Dockerネットワーク内ではIPアドレスを直接参照する必要は無く、コンテナ名(ホスト名)でアクセスできます。
78
+
79
+ ```
80
+
81
+ $ docker run -d -e PMA_HOST=mysql --net mysql-network -p 8080:80 phpmyadmin/phpmyadmin
82
+
83
+ ```

1

表現を改善

2021/11/10 09:11

投稿

surface_0
surface_0

スコア497

test CHANGED
@@ -4,6 +4,6 @@
4
4
 
5
5
 
6
6
 
7
- なお、docker-composeでスタックされたコンテナの場合、自動的に暗黙同一ネットワークが作成されますが、
7
+ docker-composeでスタックされたコンテナの場合、自動的にネットワークが作成されて、暗黙同一ネットワークに接続されることになりますが、
8
8
 
9
9
  それとは別に立ち上げたコンテナから通信する場合は、あらかじめ作成したネットワークに両者を接続するようにする必要があります。