LoginSignup
6
5

More than 5 years have passed since last update.

リモートサーバ(ubuntu)に docker をインストールしたらサーバと接続できなくなる場合の対応(ネットワークが原因)

Posted at

概要

docker 公式サイトに載っている手順の通りに、リモートサーバ(ubuntu 14.04 LTS) にdocker をインストールしたところ、以下のコマンドを打った直後にリモートサーバと通信できなくなりました。

sudo apt-get install docker-engine

ssh をしても、リモートデスクトップ接続をしても、接続できません。
クラウドのサーバだと終了ですね。

原因と回避方法について説明します。

原因は docker が作成するサブネットとクライアントのIPアドレスが被っていること

docker をインストールする前に、クライアントのIPアドレスを確認します。

リモートサーバに ssh でログインして、接続を確認します。

$ netstat -ta
tcp        0    320 リモートサーバのIP:ssh      172.17.ほげ.ほげ:53563      ESTABLISHED

docker が作成するサブネットは 172.17.0.0/16 なので、上記のケースだと被っています。そのため、docker daemon を起動するとリモートサーバと通信できなくなります。

対応

docker のサブネットの設定を変更すれば良いのですが、apt でインストールすると、デフォルトでは自動で docker が初期設定で起動してしまい、接続が切断されてしまうのですよね。というわけで、自動起動しないように設定します。

docker-engine をインストールする前に、以下の設定を入れて、自動起動を防止します。

以下、root ユーザで実行してください。

cat << EOF > /usr/sbin/policy-rc.d
#!/bin/sh  
exit 101
EOF
chmod +x /usr/sbin/policy-rc.d

docker-engine をインストールします。

apt-get install docker-engine

docker daemon が起動しないので、接続が切断されません(嬉)。

docker のサブネットの設定を変更します。

echo 'DOCKER_OPTS="--bip=172.100.42.1/16"' >> /etc/default/docker 

docker daemon を起動します。

service docker start

OKです!

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5