GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu Gnome 15.10でネットワークDockerをクリーンにセットアップする方法は?

Ubuntu Gnome 15.10では、Dockerはほとんどそのままで動作しますが、微妙な点があります。 Dockerサービスを再起動するまで、コンテナはネットワークにアクセスできないようです。

ホストを起動した後、docker0インターフェースにはIPアドレスがありません。

$ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr ea:03:cc:9c:7a:cd
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:108 (108.0 B)

次にコンテナを起動すると、docker0インターフェイスはipv6アドレスのみを取得し、私が知る限り、コンテナからのネットワーク接続は不可能です。ホストIP、LAN IP、またはインターネットIPにpingを実行できません。私はubuntu:trustyイメージを使用し、コンテナーのメインプロセスとしてbashを実行しています。

$ ifconfig docker0 
docker0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet6 addr: fe80::7801:6eff:fe86:6dd8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:704 (704.0 B)  TX bytes:3917 (3.9 KB)

dockerを再起動すると、docker0は(ipv6アドレスに加えて)ipv4アドレスを取得し、すべてが期待どおりに機能します。

$ sudo service docker restart 
$ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::7801:6eff:fe86:6dd8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:704 (704.0 B)  TX bytes:3917 (3.9 KB)

もちろん、マシンを再起動するたびにDockerサービスを再起動することも、スタートアップスクリプトをハックして、それを実行することもできます(試したことはありません)。 クリーンを知っている人はいますか これを修正する方法は?

承認された回答:

TL; DR:「apt-getinstalldocker.io」を使用してDockerをインストールしました。 https://docs.docker.com/installation/ubuntulinux/に従って最新バージョンをインストールすると、問題が修正されます。

問題を調査した後、15.10のDockerのバージョンではdocker0インターフェースを正しく作成および初期化できないようです。最初の実行(service docker start)でインターフェースを作成しますが、初期化に失敗し、その後の実行(service docker restart)でインターフェースを初期化します。これは、brctlを使用して手動でインターフェイスを追加および削除することで一貫して再現できます。このバグは最新のDockerで修正されています。

関連:14.04でlightdmからのシャットダウン/再起動を無効にする方法は?
Ubuntu
  1. Ubuntu16.04でHAProxyをセットアップする方法

  2. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  3. Ubuntu で netplan コマンドを使用する方法

  1. Ubuntu、Debian、LinuxMintでネットワークインターフェースを設定する方法

  2. Ubuntu Gnome 3デスクトップをカスタマイズする方法は?

  3. Ubuntu DHCP クライアントを構成する方法

  1. Ubuntu22.04にDockerをインストールする方法

  2. Ubuntu20.04でプライベートDockerレジストリを設定する方法

  3. UbuntuでDockerSwarmクラスターをセットアップおよび構成する方法