3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker-Composeを学んだので、基本をまとめてみた。

Posted at

Docker-Composeについて

概要

Docker-Composeは、複数のコンテナを同時に実行する際に非常に便利なツール。
複数のdocker runコマンドを使う代わりに、YAML形式のファイルにコンテナの設定をまとめて記述することで、簡単に管理・実行ができる。

Docker-Composeのメリット

シンプルな定義: YAML形式で直感的にコンテナ設定が記述できる。
効率的な管理: 複数のコンテナの起動や停止を1つのコマンドで操作できる。
依存関係の管理: コンテナ間の依存関係を簡単に定義できる。

Docker Composeファイルの記述例()

version: "3"  # docker-composeのバージョン指定
services:
  web:
    image: "nginx:latest"  # 使用するDockerイメージ
    ports:
      - "8080:80"  # ホスト側のポート:コンテナ側のポート
    volumes:
      - "./html:/usr/share/nginx/html"  # ホスト側パス:コンテナ側パス
    environment:
      NGINX_HOST: localhost  # 環境変数設定
  app:
    build: ./app  # Dockerfileのパス指定
    ports:
      - "3000:3000"
    volumes:
      - "./src:/app/src"
    environment:
      NODE_ENV: production
    depends_on:
      - db  # 依存関係を定義(この場合、dbが起動してからappが起動)
  db:
    image: "postgres:13"
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

Web、API、DBの箇所はコンテナ名を定義しています。

各項目の説明

  • version: docker-compose.ymlのバージョン指定。一般的には"3"または"3.x"を使用。
  • services: 複数のコンテナ(サービス)を定義するセクション。
  • image: Docker Hubなどのリポジトリから取得するイメージ名を指定。
  • build: ローカルにあるDockerfileを使用してイメージをビルドするためのパス指定。
  • ports: ホストとコンテナのポートをマッピング(例: "ホスト側ポート:コンテナ側ポート")。
  • volumes: ホストのディレクトリとコンテナのディレクトリを同期。
  • environment: コンテナ内で使用する環境変数を定義。
  • depends_on: 他のサービス(コンテナ)が起動してからこのサービスが起動するように依存関係を定義。

※volumesの解説は後日個別でまとめたい・・・

エディタでの記述(ターミナル)

code .

viで慣れてない方はvisual studio codeなどでも記述できるので試してみてください。

Docker-Composeの基本コマンド

Docker Composeを使用する際の基本的なコマンドを以下に羅列。

イメージ一覧表示

docker-compose images

使用しているイメージの一覧を確認

イメージ作成

docker-compose build

Dockerfileをもとにイメージをビルド

サービス実行

docker-compose up

サービスを実行。-dオプションを付けるとバックグラウンドで実行可能。
例: docker-compose up -d

サービス停止・削除

docker-compose down

起動しているコンテナを停止し、ネットワークやボリュームなどのリソースも削除。

サービス起動

docker-compose start

停止しているコンテナを起動。

サービス停止

docker-compose stop

コンテナを停止。

サービス再起動

docker-compose restart

コンテナを再起動します。

まとめ

とりあえず、まとめたことを羅列してみました。
随時、追記していこうとおもいます。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?