Posted at

docker compose使ってみた

More than 3 years have passed since last update.

Docker Composeが正式公開されたということで、早速使ってみました。なと、Dockerはインストール済みってことでだいぶ端折って書いています。


インストール

私の試した環境はCentOS 6.6でしたが、以下でさくっと完了しました。楽チン

curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose


docker-compose.yml

基本的には公式ドキュメントを読めば、Dockerをそこそこ触ったことがあれば詰まるようなところはないかと。

app:

image: localhost:5000/webapp
volumes:
- /path/to/host:/path/to/container
net: "host"
redis:
image: redis
volumes:
- /path/to/host/data:/data
net: "host"

地味にハマったところがvolumesのところで、Array形式で書かなかったら動かなかったという。。ドキュメントはちゃんと読みましょうorz

appのimageは、Private Registryからイメージを取得する感じになっています(Private RegistryもDockerコンテナなのでとっても便利)。

ちなみに、いちいちポート指定するのが面倒になってきたので、--net=hostをよく使っています。


起動

docker-compose.ymlのあるディレクトリで以下を実行すればコンテナが起動します。

docker-compose up -d

蛇足ですがdオプションはデーモン起動させるためです。

起動したかどうか確認するには、普通にdocker psでもいいし、以下でも大丈夫でした。

docker-compose ps

ymlファイルの記述がミスっていてゴミが残って再起動できないときがあって、その時は以下で解決しますた。

docker-compose rm


感想とか


  • とても便利。こういうのを欲していた感。

  • オーケストレーションツールは他にも色々出てきていて、お仕事で使うにはどれを選択するか、現状なかなか悩ましい状況ですね。ベータ版のものも多いし。。

  • 私の場合は、まずは開発開発用にNginx + webapp + Fluentd + Redis + Mysqlみたいな、必要なもの全部入りのdocker-compose.ymlを作ってみる使い方になりそうです。


    • 今までひとつずつ起動してたのが楽になりそう



  • 次はDocker Swarmを使ってみよう