minminの備忘録

フルスタックになりたいエンジニアの備忘録 → https://zuminblog.com/ へ引越し中

docker-composeの使い方

docker-composeの使い方について、備忘録として簡単にまとめておきます。
ゼロからはじめる Dockerによるアプリケーション実行環境構築 | Udemyで学んだことを基本に、docker-composeの使い方をまとめてみました。

docker-composeとは

複数のコンテナを使用したアプリケーションを定義・実行するツール
複数のコンテナを利用し疎結合なサービスにすることで、保守性や可読性が高まります。

docker-compose実行の手順

  1. Dockerfile or 使用するイメージの用意
    • 各コンテナを立ち上げるための準備(Dockerfileの書き方とかは本記事では言及しません)
  2. docker-compose.ymlの作成
    • サービスをどのように構成するかが記述されているファイル
  3. docker compose up の実行
    • 上二つで用意したものを使って、実際にサービスを立ち上げる

docker-compose.ymlの書き方

version: '3'

services:
  db: #サービス名
  
    # サービス(コンテナ)をイメージから立ち上げる場合はimage、Dockerfileからならbuildを使用する  
    image: [サービスを立ち上げる基になるイメージ名]
    build: [Dockerfileのあるディレクトリ名]
    
    ports:
    - "[外部に公開するport]:[マッピングするポート]"
    
    volumes:
    - [ホスト側のディレクトリ or volume名]:[docker内のディレクトリ]

    command: [コンテナ起動時に実行したいコマンド]

    links:
    - [linkしたいサービス名]

    depends_on: #依存関係の定義
    - [サービス名] #本サービス起動前にどのサービスを起動したいか記載
  
  frontend:
      ...

volumes: #volumeを自分で定義する
  [volume名]:

主要コマンド

以下、使用頻度が高いであろうコマンドをまとめています。

※docker-composeのコマンドは基本的にdocker-compose.ymlがあるディレクトリで実行する。
-fオプションで、docker-composeファイルを指定することもできる

docker-compose build

サービスのビルドを実行

docker-compose build

docker-compose up

サービスごとのコンテナを作成して起動する
--buildでコンテナ作成前にイメージを構築できる

docker-compose up

docker-compose stop

サービス・コンテナの停止

docker-compose stop

docker-compose down

コンテナ・ネットワークの削除を行う
-vでvolumeの削除、---rmiでimageの削除も行うことができる

docker-compose down

docker-compose ps

本アプリケーションで作成されたコンテナの一覧を表示する

docker-compose ps

docker-compose run

サービスのコンテナ内でコマンドを実行する
(個人的にはこのコマンドについては、docker execでコンテナの中に入り込んで作業した方がやりやすいと思っているのであまり使わないかも、、?)

docker-compose run [サービス] [サービスのコンテナ内で実行したいコマンド]

参考