環境がUbuntu15.04以降では、Systemdを利用していることも有りdocker engineの起動時に /etc/default/docker が参照されないので注意が必要です。
長らく 14.x を利用していましたが年も変わり2016年になりいい加減に 15.x を利用してみたところいきなりDockerの設定で躓いたので書いておきたいと思います。
多くのテキストでubuntu の場合には14.xをベースにして記載されていることも有り、dockerの設定ファイルは /etc/default/docker
を変更する事が記載していますが 15.04 以降は /lib/systemd/system/docker.service
を変更します。
今回変更したい内容は /etc/default/docker としては以下の内容です。
DOCKER_OPTS="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"
これはdocker daemon の起動オプションになります。
ユーザでのカスタム設定を行うので/etc/以下にコピーした後に修正します。
$ sudo cp -p /lib/systemd/system/docker.service /etc/systemd/system/docker.service
ExecStartでの引数を直に記載しています。
$ cat /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
設定を反映させた後にサービスを再起動します。
$ sudo systemctl daemon-reload
$ sudo service docker stop
$ sudo service docker start
$ ps -ef | grep docker
root 2757 1 6 02:41 ? 00:00:00 /usr/bin/docker daemon -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
これで DOCKER_OPTSが反映されました。
また私の環境ではクライアントとしてのdockerコマンドも環境変数を見ていない状態だったので DOCKER_HOST=”localhost:4243″ と指定して利用しました。
では、今年もよいコンテナライフを