技術ネタはQiitaに移りました。壁もどこぞに。

Docker Remote API を使ってみる

これがやりたいがためにローカル環境に Docker を構築したといってもいい。ここを突破したら、API 使って Web フロントエンドの開発をするつもり。

ググったらまた使い方出てきた。

とりあえず、Remote API を使える状態にして、curl からレスポンスを確認するところまでやってみる。

Remote API の有効化

/etc/init/docker.conf を編集する。設定ファイルのように見えて内容はスクリプト。中ごろに DOCKER_OPTS= となっている行があるのでここを編集する。

$ sudo vi /etc/init/docker.conf
script
        # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
        DOCKER=/usr/bin/$UPSTART_JOB
#       DOCKER_OPTS=
        DOCKER_OPTS=' -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock'
        if [ -f /etc/default/$UPSTART_JOB ]; then
                . /etc/default/$UPSTART_JOB
        fi
        exec "$DOCKER" -d $DOCKER_OPTS
end script

設定を終えたら、Docker サービスを再起動。

$ sudo service docker restart
docker stop/waiting
docker start/running, process 15741

Remote API の動作確認

Curl を使って、API の動作確認をする。Ubuntu にはデフォルトで Curl が入っていないので、インストールしてから確認する。

$ sudo apt-get install curl
...
$ curl http://localhost:2376/images/json
[{"Created":1422470699,"Id":"f90095a67f5b0d8d22c3195e75b4d5b93eb894479d93f714512747fb15098bf9","ParentId":"739aef46f6f646ceca836a93b5166235cd32fb915aa8dbb7db86f703a990d8df","RepoTags":["httpd:latest"],"Size":0,"VirtualSize":159369766}
]

無事に動いた。今回リクエストしたエンドポイントは、イメージの一覧を確認するものなので、Docker イメージを準備していない場合は docker pull を使用して、事前に Docker イメージを用意しておく。

念のため、今回の検証環境

$ uname -a
Linux ubuntu 3.16.0-31-generic #41~14.04.1-Ubuntu SMP Wed Feb 11 19:30:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ docker --version
Docker version 1.5.0, build a8a31ef