LoginSignup
4
3

More than 1 year has passed since last update.

はじめてのDocker compose

Last updated at Posted at 2021-09-11

はじめに

以下のような構成で記事を執筆していますが、
どこからでも読めるような構成になっています。

  1. ゼロから始めるDocker入門
  2. はじめてのDockerfile
  3. はじめてのDocker compose ←今回はここ

対象読者

  • Docker の使用に慣れてきた方
  • docker-compose.yml でなにをしているのか知りたい方

目次

Docker Composeとは

docker-compose.yml という yml 形式のファイルに
複数のコンテナを定義し実行することができるツールです。

Docker compose

どのように書いていくのか確認していきます。
(※ 最低限の設計です)

ディレクトリ構造

.
├── docker
│   └── Dockerfile 
└── docker-compose.yml

docker-compose.yml

docker-compose.yml
# バージョンの指定
version: '3.9'

# サービス定義
services:
  app:                              # サービス名(コンテナ名)
    build:                          # build
      context: .                    # build context
      dockerfile: docker/Dockerfile # Dockerfile の指定
    ports:                          # port指定(ホストのポートをコンテナのポートにつなげる)
      # host:container
      - "8000:80"
    volumes:                        # マウント(ファイルシステムの共有)
      # host:container
      - '.:/var/www/html'

Dockerfile

docker/Dockerfile
# php のイメージ
FROM php:7.4-fpm

# コマンド実行ディレクトリ
WORKDIR /var/www/html

# パッケージインストール
RUN apt-get update \
  && apt-get install -y libonig-dev libzip-dev unzip

Compose コマンド

使用頻度の高いコマンドです。

 コマンド 意味
docker-compose build コンテナをbuildする
docker-compose up -d デタッチドモードで立ち上げ
docker-compose stop 実行中のコンテナを停止
docker-compose down 実行中のコンテナを停止し削除
docker-compose restart コンテナを再起動
docker-compose exec [サービス名(コンテナ名)] [command(bash)] コンテナに対しコマンド実行。bashを書くとコンテナ内に入ることができる。

おわりに

今回3部構成で記事を執筆いたしました。
すべて読みすすめたら Docker に対して困ることは少なくなるのかなと思います。

もちろんすべてを網羅したわけではないですし、説明不足な点もあるかもしれませんが、
「Dockerって何?」 というところから抜け出すきっかけになりましたら幸いです。

記事で足りない点は調べて補いつつ、さらに理解を深めたいときは
教材など購入、公式ドキュメントなど読みながら手を動かしてみると深く学ぶことができるのではないでしょうか。

参考文献

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