Docker Composeの始め方 & 使い方

Docker Compose

本ナレッジでは、複数のDockerコンテナを一元管理できるツールであるDocker Composeについて、始め方としてインストール方法を、使い方として主要コマンド等を記載する。
Docker Composeの概要は別ナレッジにて記載する。
また、Docker Composeを利用するにはDocker自体も当然必要となる。Docker自体の始め方は下記となる。

 

Sponsored Links

Docker Compose インストール

  • 以下のGitHub上にあるDocker Composeのリポジトリのページにアクセスし、最新バージョン等インストールしたいバージョンを確認する。
  • 以下のコマンドのバージョン部分(~download/の後ろ)をインストールしたいバージョンに変更して、コマンドを実行。本コマンドにより、Docker Composeがダウンロードされる。
    • 以下の例では”1.22.0″のDocker Composeをダウンロードし、”/usr/local/bin/”配下に、”docker-compose”というファイル名で保存している。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

 

  • 上記は実行可能なバイナリのため、基本的にダウンロードしたのみで、インストール完了となる。
  • このファイルに実行権限を付与する。
$ sudo chmod +x /usr/local/bin/docker-compose

 

  • 以上でインストール完了となるため、Docker Composeが利用可能なことを確認する。
$ docker-compose --version
docker-compose version 1.22.0, build f46880fe

 

Compose ファイル

Docker Composeを利用するためには、前提としてComposeファイルを作成する必要がある。
ComposeファイルとはYAML形式のファイルであり、Dockerコンテナの設定や起動方法を指示・管理するファイルである。
コマンドを記載する前に、コマンド例実行のために使用するComposeファイルについても記載する。
  • “docker-compose.yml”という名前でComposeファイルを作成し、下記をコピーして保存する。
    • 下記の例はDocker HubからUbuntuとCentOSの最新バージョンイメージをダウンロードし、コンテナ作成、起動、といったことが可能なComposeファイルとなる。
      • “depends_on”設定で、CentOSより前に、Ubuntuを起動する設定となっている。
      • “restart: always”にて各コンテナがエラーなどで停止した場合、自動再起動する設定となっている。
      • ただし、”depends_on”と”restart: always”は連動しない。Docker Composeを利用しての起動時は”depends_on”により起動順は制御されるが、障害等でコンテナが停止し”restart: always”により自動再起動された場合は起動順は考慮されない。
version: '3'

services:
  ubuntu01:
    image: ubuntu:latest
    restart: always

  centos01:
    depends_on:
      - ubuntu01
    image: centos:latest
    restart: always

 

Docker Compose 主要コマンド

以下のDocker Composeコマンドは、”docker-compose.yml”を保存したディレクトリにて実行する。

  • 以下のコマンドにて、Docker Composeによりイメージをダウンロード、コンテナを作成、起動する。
    • “-d”オプションにより、デタッチモードで起動し、バックグラウンドで起動する。
    • 既に対象イメージがある場合はイメージのダウンロードはスキップされ、コンテナ作成から実施される。
    • 既にコンテナがある場合はコンテナ作成がスキップされ、コンテナ起動のみ実施される。
$ docker-compose up -d

 

  • Composeファイルはデフォルトではカレントディレクトリの”docker-compose.yml”を利用するが、利用したいYAMLファイル名を指定したい場合は以下コマンドとなる。
    • 以下の例では”xxxxxxxxxxx.yml”を指定している。 
$ docker-compose -f xxxxxxxxxxx.yml up -d

 

$ docker-compose stop

 

  • コンテナを起動する。
$ docker-compose start

 

  • コンテナを再起動する。
$ docker-compose restart

 

  • コンテナの状態を確認する。
$ docker-compose ps

 

  • コンテナを停止して、コンテナ自体を削除する。
$ docker-compose down

 

  • コンテナを停止し、コンテナおよびイメージ自体を削除する。
$ docker-compose down --rmi all

 

  • Docker Volumeを利用している場合、利用しているVloumeを確認する。
$ docker volume ls

 

  • 指定したVolume Name のDocker Volumeを削除する。
    • 下記ではVolume NameがxxxxxxxxxxxxのVolumeを削除している。
$ docker volume rm xxxxxxxxxxxx
Sponsored Links