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?

Docker composeの使い方

Last updated at Posted at 2025-03-23

Docker Compose とは

Docker では、イメージの作成やコンテナの起動、ネットワーク接続などをコマンドで実行します。しかし、開発環境が複雑になると必要なコマンドが増え、チームでの共有が困難になります。

そこで、Docker Compose を使うと、すべての設定を docker-compose.yml に記述し、シンプルなコマンドで環境を構築できます。これにより、メンバーにファイルを渡すだけで、同じ開発環境を簡単に再現できます。

Nginx + PHP(Laravel) + MySQL の環境を構築する

docker-compose.yml
version: '3.8'  # Docker Compose のバージョン

services:
  app:
    image: php:8.2-fpm
    container_name: laravel_app
    volumes:
      - .:/var/www/html
    depends_on:
      - db

  web:
    image: nginx:latest
    container_name: nginx_server
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app

  db:
    image: mysql:8.0
    container_name: mysql_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Docker Compose の実行

以下のコマンドを実行すると、設定された環境が起動します。

docker compose up

バックグラウンドで実行する場合は、-d オプションを付けます。

docker compose up -d

docker composeを実行すると自動でカスタムネットワークを作成してくれる

docker composeのいろいろなコマンド

docker composeのコンテナを停止するコマンド

docker compose down

新しくdocker composeのコンテナを作成させるときに使用するコマンド(docker composeだけだと今あるコンテナを再利用してしまうから)

docker compose up --build

例 ubuntuとnginxを起動させる方法

docker-compose.yml
version: '3.8'

services:
  yamada-ubuntu:
    build: .
    volumes:
      - ubuntu-vol:/app
    networks:
      - yamada-net
    stdin_open: true  # -i オプション相当
    tty: true         # -t オプション相当
    command: /bin/bash  # 起動時に Bash を開く

  yamada-nginx:
    image: nginx:latest
    ports:
      - "1234:80"
    volumes:
      - nginx-vol:/etc/nginx/conf.d
    networks:
      - yamada-net
    restart: unless-stopped  # バックグラウンドで常駐

volumes:
  ubuntu-vol:
  nginx-vol:

networks:
  yamada-net:

起動コマンド

docker-compose up -d yamada-nginx && docker-compose run yamada-ubuntu

まとめ

Docker Compose を使うと、複雑な Docker コマンドを docker-compose.yml にまとめられる
チームメンバーと環境を簡単に共有できる
シンプルなコマンド (docker compose up) で環境を構築可能
これにより、開発作業が効率化され、統一された環境を簡単に再現できます。

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?