【Docker】Docker ~ docker-compose の サンプル ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/11/000000
https://dk521123.hatenablog.com/entry/2020/12/18/152949
https://dk521123.hatenablog.com/entry/2022/04/28/000000

の続き。

今回は、docker-compose の ハンズオンをしてみる。

目次

【0】docker-composeコマンド
 1)docker-compose up -d
 2)docker-compose down
【1】nginxサーバを構築する
 1)docker-compose.yml を作成する
 2)コンテナ作成および起動
 3)動作確認
 4)コンテナ停止
【2】WordPress を構築する
 1)docker-compose.yml を作成する
 2)コンテナ作成および起動
 3)動作確認
 4)コンテナ停止

【0】docker-composeコマンド

* 関係するdocker-composeコマンドを記す

1)docker-compose up -d

https://docs.docker.jp/compose/reference/up.html

* サービス用のコンテナを構築、作成、起動、アタッチ

オプション「-d, --detach」

* デタッチド・モード
* バックグラウンドでコンテナを実行し、新しいコンテナ名を表示

2)docker-compose down

https://docs.docker.jp/compose/reference/down.html

* コンテナを停止
* up で作成した以下のコンポーネントを削除
 + コンテナ
 + ネットワーク
 + ボリューム
 + イメージ

【1】nginxサーバを構築する

構築手順

1)docker-compose.yml を作成する
2)コンテナ作成および起動
3)動作確認
4)コンテナ停止

参考動画

 ハンズオンについては、
以下の動画(44:20辺りから)を参考にさせてもらった。

https://www.youtube.com/watch?v=5d8O7jm7Q5c&t=586s

1)docker-compose.yml を作成する

* docker-compose.yml ファイルの書き方の詳細は、
 以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/12/18/152949

docker-compose.yml

version: "3"
services:
    web-server:
        image: nginx:alpine
        ports:
            - "80:80"

2)コンテナ作成および起動

docker-compose.ymlに記載されている定義をもとに
docker-compose upコマンドで、コンテナ作成および起動を行う

コマンド例

# -d は、バックグラウンド起動
docker-compose up -d

# [オプション] ログをtail的に監視し、表示
docker logs user_web-server_1 -f

3)動作確認

ブラウザで、設定したNginxに対して
http://[IPアドレス or hostname] でアクセスする
 => 「Welcome to nginx!」が表示されたらOK!
 => 「docker logs user_web-server_1 -f」してたら、ログが表示されるはず

4)コンテナ停止

# docker-compose downコマンドで、コンテナ停止
docker-compose down

【2】WordPress を構築する

https://dk521123.hatenablog.com/entry/2022/04/29/000000

で行った WordPress (MySQL+WordPress)を
docker-compose で構築する

以下の本 および 公式ドキュメントのクィックスタートを
参考にしている。

https://docs.docker.jp/compose/wordpress.html

補足1:元ネタとなった図書館で借りた本

1)docker-compose.yml を作成する

version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - network-for-wordpress
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    networks:
      - network-for-wordpress
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
networks:
  network-for-wordpress:
volumes:
  db_data:
  wordpress_data:

2)コンテナ作成および起動

docker-compose up -d

3)動作確認

* ブラウザで以下にアクセスする

http://localhost:8000

4)コンテナ停止

# コンテナとデフォルトネットワーク、
# さらに WordPress データベースも削除
docker-compose down --volumes

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / docker-compose ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker ~ 基本編 / docker-compose.yml の作成 ~
https://dk521123.hatenablog.com/entry/2020/12/18/152949
Docker ~ 基本編 / docker-compose の環境整備 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100