0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker-composeとは(個人的備忘録)

Posted at

##Docker Composeとは
マルチコンテナのdockerアプリケーションを定義して実行するためのツール。よく使われる用途として開発環境や、自動テストの実行環境を立ち上げる際に使用される。使い方としてはwebサーバ、DBサーバ、キャッシュサーバなどの定義を、1つのymlファイルに記述しておくことで、そのymlファイルを元にアプリケーション実行に必要なコンテナを、まとめて起動することができる。ymlとは構造化されたデータを表現するためのフォーマットで、ymlを使ったことがなくても、直感的に記述することができる。ファイルを見れば構造を理解できる。

##Conpose実行のステップ
1 Dockerfileを用意するか、使用するイメージをDockerHubなどに用意する。
2 docker-compose.ymlを定義する
コンテナごとに起動時の設定を書き込む。これはdocker runコマンドでイメージ名や、各種フラグを指定するようなもの。
3 docker-compose upを実行する
docker-composeが置いてあるディレクトリでdocker-compose upを指定する。しかしそのままだとフォアグラウンドで実行されるので、-dオプションでデタッチで実行することも多い。実行するとdocker-compose.ymlの定義に従って、各コンテナが実行される。

##docker-compose.yml


version: '3'                -#docker-composeのファイル形式のバージョン
services:
  web:                      -#サービス名、任意の名前をつけることができる
    build: .                -#docker-compose.ymlと同じディレクトリをビルドコンテキストとしている。そのためymlファイルと同じディレクトリにwebサービス用のdockerfileを作成する必要がある
    ports:                  -#コンテナ外部に公開するポートとマッピング先のポートを示している。
    - "5000:5000"
    volumes:  
    - .:/code               -#bind mountでdocker-compose.ymlの存在するディレクトリをコンテナの/codeディレクトリにマウントしている。
    - logvolume01:/var/log  -#volumesに定義したlogvolume01のvolumeをwebサービスのコンテナの/var/logにマウントしている。
    links:
    - redis                 -#webサービスからredisサービスへのリンクを設定している
    redis:
    image: redis            -#redisサービスでは単純にredisイメージを使ってコンテナを立ち上げている。
volumes:
  logvolume01               -#名前を付けたvolumeをマウントする場合は、volumesに定義しておく必要がある。
                             明示的に{}としているが書かなくても良い。volumeに使用するdriverなどの設定を書く場合は、
                             volume名の下に設定を続けて書くことができるが、単純にデフォルトのvolumeを使う場合は設定は不要。

##docker-composeの確認

% docker-compose -v
docker-compose version 1.26.2, build eefe0d31

ダウンロードされていればdocker-composeのバージョンが表示される。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?