docker-py を使ってコンテナを起動する
Docker Remote API を使うために docker-py を使って動作確認.
動作確認環境
インストール
docker-py をインストール
$ sudo pip install -U git+https://github.com/dotcloud/docker-py
設定
/etc/default/docker に下記記述を追加して tcp で受けられるようにする.
DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:5555"
docker をリスタート
$ sudo service docker restart
動作確認
とりあえず http が使えることを確認するために下記のような Dockerfile を用意してビルドする.ここでは nise_nabe/apache というタグをつけている.
$ cat Dockerfile FROM debian RUN apt-get update && apt-get upgrade -y RUN apt-get install -y apache2 ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 CMD /usr/sbin/apache2 -D FOREGROUND $ sudo docker build -t nise_nabe/apache -rm .
下記のようなコード(ここでは test.py としている)を用意する.出力に IPアドレスを出している.
import docker import time c = docker.Client(base_url='http://localhost:5555', version='1.8', timeout=20) result = c.create_container(image='nise_nabe/apache') containerId = result['Id'] c.start(container=containerId) time.sleep(1) # 念のため 1s 待つ data = c.inspect_container(container=containerId) print data['NetworkSettings']['IPAddress']
apache が起動するか確認.
$ python test.py | xargs curl <html><body><h1>It works!</h1> <p>This is the default web page for this server.</p> <p>The web server software is running but no content has been added, yet.</p> </body></html>
以上確認終わり