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

回答編集履歴

2

追記

2018/05/31 02:47

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

answer CHANGED
@@ -10,4 +10,32 @@
10
10
 
11
11
  "docker network create" 時の "--gateway=192.168.0.181" は **192.168.215.181** の Typo ですよね?
12
12
 
13
- 確認できたら、`docker build --network=br0 (略)` で br0 を指定してビルドを実行してみてください。
13
+ 確認できたら、`docker build --network=br0 (略)` で br0 を指定してビルドを実行してみてください。
14
+
15
+ ###(2018/05/31 11:47) 追記
16
+ > 上記を確認する限り、IPAddressとGatewayは割り振られているのですが
17
+ > IPAddressは本来のshares_nwのgatewayのIPAddressであり、DHCPでは割り振られないIPAddressが割り振られている状況です
18
+
19
+ これは正しい動作です。
20
+ Docker ホストがサブネット 192.168.215.0/24 の中から IPアドレスを割り当てます。
21
+ コンテナのデフォルトゲートウェイは "--gateway=" で指定した 192.168.215.181 (Docker ホストの br0 の IPアドレス)になります。
22
+ Docker ホストの iptables で Forward, NAT して、外部と通信できるようになっているはず。
23
+
24
+ > 念のため、containerにログインをして
25
+ > yum -y install net-tools
26
+ > を実行しましたが、以下の通りのerrorでnet-toolsのinstallができませんでした
27
+
28
+ Docker ホストから割り当てられた 192.168.215.1 が既存のホストと競合しているのかもしれません。
29
+ 192.168.215.0/24 の中で使用していない IPアドレスを(例えば 192.168.215.251)コンテナの固定IPアドレスとして用意して、`docker run -it --network=shared_nw --ip 192.168.215.251 --name (任意) centos:7 /bin/bash` とすると、外部と通信できませんでしょうか?
30
+
31
+ > containerにはvethが割り振られ、ens33とbridgeをしていますが、うまくDHCPサーバーからIPを取得できていないようです
32
+
33
+ 192.168.215.0/24 内の DHCPサーバーから IPアドレスを割り当ててもらうには、コンテナ内で dhclient を実行する必要があります。
34
+ 簡単ではなさそうです。
35
+ docker run に "--privileged" オプションも必要になると思います。
36
+
37
+ [https://www.agilegroup.co.jp/technote/docker-network-in-bridge.html](https://www.agilegroup.co.jp/technote/docker-network-in-bridge.html)
38
+
39
+ pipework というものを使う方法もあるようです。
40
+
41
+ [http://www.itmedia.co.jp/enterprise/articles/1703/31/news031.html](http://www.itmedia.co.jp/enterprise/articles/1703/31/news031.html)

1

追記

2018/05/31 02:47

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

answer CHANGED
@@ -1,3 +1,13 @@
1
1
  ブリッジにしているので、docker コンテナには 192.168.215.0/24 サブネット内にある DHCPサーバーから、IPアドレス、デフォルトゲートウェイ、ネームサーバーが割り当てられるのですよね? docker ホストからではなく。
2
2
 
3
- まず、docker run で /bin/bash でも起動してみて、IPアドレスなどが割り当てられているか、yum リポジトリサーバーに接続できるか確認してみてはいかがでしょうか。
3
+ まず、docker run で /bin/bash でも起動してみて、IPアドレスなどが割り当てられているか、yum リポジトリサーバーに接続できるか確認してみてはいかがでしょうか。
4
+
5
+ ###(2018/05/28 18:02) 追記
6
+ 思い違いをしていたかもしれません。
7
+ 作成した br0 ネットワークでも、docker ホストが IPアドレスを割り当ててくれませんでしょうか?
8
+
9
+ 試しに、`docker run -it --network=br0 --name test_br0 centos:7 /bin/bash` で起動し、docker ホストから `docker inspect test_br0` で IPAddress, Gateway が割り当てられているか、yum を実行できるか確認ください。
10
+
11
+ "docker network create" 時の "--gateway=192.168.0.181" は **192.168.215.181** の Typo ですよね?
12
+
13
+ 確認できたら、`docker build --network=br0 (略)` で br0 を指定してビルドを実行してみてください。