LoginSignup
0
0

More than 3 years have passed since last update.

コンテナの指揮者、Docker Composeのおはなし

Posted at

Docker Composeとは

「複数のDockerコンテナを、諸々の設定含め一発で一気に起動できちゃうよ」な便利道具

いくつかのDockerコンテナを立ち上げて環境構築しようと思った時に毎回docker runで全部立ち上げるのは大変です。

そんな時にまさに指揮者(Composer)のようにコンテナを自由自在に扱えるようにしてくれるのがDocker Composeです!

Docker Composeの使い方

Docker Compose起動!!

と言っても起動はしてくれません。

docker-compose.yml
(もしくはdocker-compose.yaml)

というファイルに設定をつらつら書いていきます。

なんだ、スクリプトファイル書くのと変わらんやん、と思うかもしれません。

正直僕も違いはそこまでわかりませんが、断然簡単です!(らしい)

僕がDockerに触れ始めた時にはもうComposeもあったので...

とりあえずdocker-compose.ymlの中身を見ていきましょう!

docker-compose.yml

docker-compose.yml


services:
 fabric-ca:
    image: hyperledger/fabric-ca
    ports:
      - "7054:7054"
    volumes:
      - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: fabric-ca
    networks:
      - basic

  couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER=xxx
      - COUCHDB_PASSWORD=xxx
    ports:
      - 5984:5984
    networks:
      - basic

こんな感じです。
Hyperledger Fabricのfabcarサンプルで使うファイルを省略してみました。

dockerを使ったことがあると大体掴めると思います。

servicesがそれぞれのコンテナで、その下の階層でオプションを指定します

image でイメージを指定
ports でホストのポートと対応するコンテナのポートを指定
volumes でホストのディレクトリとコンテナ内のディレクトリをマウント
container_name で名前を設定。コンテナIDを使わなくても名前でアクセスできるようになったりしてわかりやすい。
environment でコンテナ内の環境変数をセットできる。
networks でコンテナをどのネットワークに置くか指定できる。デフォルトだとおそらくbridgeネットワークです。

他にもdockerコマンドのオプションに対応するものは大体あると思います。

オプションの順番がfabric-caとcouchdbでバラバラなのが少し気持ち悪いですが、まあこんな風に適当にもかけちゃうよってことですね。

Docker Compose公式ドキュメント

docker-composeコマンド

docker-compose.ymlファイルが書けたらもうほとんど終わりです!

あとはコマンドを打ち込む!
下記はいくつかよく使うコマンドです

#コンテナ全部起動
docker-compose up
#デタッチドモードでバックグラウンドで起動
docker-compose up -d
#コンテナ全部終了
docker-compose stop
#コンテナを全削除
docker-compose rm
#コンテナのログを出力
docker-compose logs

他にも色々あります
先ほどのドキュメントやヘルプをご参照ください!

まとめ

Docker Composeが便利だよと言うお話でした。

昔はローカルでシステムの環境構築するのに数日かかることもあったとか、なかったとか。
便利な世の中になりました。
先人達に感謝。

今度は最近話題のKubernetesについても勉強してまとめてみたいと思います。

Kubernetesについてよく出てくるワードが

「コンテナオーケストレーション」

オーケストラのように調和のとれた秩序ある環境を構築するということなのでしょうか。

指揮者のさらに上をいく技術っぽそうな感じがプンプンしてきます。

楽しみです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0