Help us understand the problem. What is going on with this article?

docker compose使ってみた

More than 5 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を使ってみよう
nabe
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away