Dockerで固定IPアドレスを使う。
最近のDockerでは固定IPアドレスが普通に使えるようになっていたのでメモ。
試した環境はCentOS7です。
新しいバージョンのDockerをインストールする。
現在、CentOSのリポジトリにあるDockerが1.9.1と若干古めで固定IPアドレス設定に対応していません。
そこで、dockerオフィシャルリポジトリからインストールします。
まず、リポジトリ設定
$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
CentOSのリポジトリからインストールしていたらアンインストールする。
$ sudo yum remove docker docker-selinux
普通にyumを使ってインストール
$ sudo yum install docker-engine
サービスを起動
$ sudo systemctl start docker
簡単ですね。
ユーザ定義ネットワークの作成
デフォルトで用意されているネットワークでは固定IPアドレスオプションが使えないので、
ユーザ定義ネットワークを作成します。
$ docker network create --subnet=192.168.56.0/24 user_defined_nw
前にVirtualBOX+Vagrantで環境作っていたのでその名残で192.168.56.0/24を使っていますが、ここはお好みで。
細かいオプションは
$ docker network create --help
で見てください。
docker run
ユーザ定義ネットワークの作成が完了したら、あとはdocker runするだけです。
ポイントは--net=
と--ip=
です。
$ docker run -it --name test --net=user_defined_nw --ip=192.168.56.100 -d centos:centos6 /bin/bash
状態の確認
割り当てられたIPアドレスの確認は
$ docker network inspect user_defined_nw
もしくは
$ docker inspect -f "{{ .NetworkSettings.Networks.user_defined_nw }}" test
でてきます。
参考
https://docs.docker.com/engine/installation/linux/centos/
https://docs.docker.com/engine/userguide/networking/work-with-networks/