【Docker】Docker ~ 基本編 / docker-compose ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/24/160044
https://dk521123.hatenablog.com/entry/2018/04/10/234030

の続き。

今回は、docker-compose に関して、
もう少し深堀りする。

目次

【1】docker-compose
【2】他のサービスとの違い
 1)Dockerfile との違い
 2)Kubernetes との違い
【3】docker-composeコマンド
 1)docker-compose up -d
 2)docker-compose ps
 3)docker-compose down

【1】docker-compose

* 複数のコンテナ(例えば、Webサーバ/DB など)を組み合わせて
 1つのアプリケーションとして定義するYAMLファイル
 => 以下「例:Apacheコンテナの docker-compose.yml」を参照
 => 詳細な書き方については、以下の関連記事を参照のこと

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

例:Apacheコンテナの docker-compose.yml

version: "3"

services:
    web-server:
        image: httpd
        ports:
            - "8081:80"
        restart: always

【2】他のサービスとの違い

1)Dockerfile との違い

- Dockerfile docker compose
Image 作成可能 作成可能
Network 作成不可 作成可能
Volume 作成不可 作成可能

Docker compose

* Imageおよび周辺環境(Network/Volume)を作成する

Dockerfile

* Imageを作るもので、Network/Volumeは作成できない

2)Kubernetes との違い

Kubernetes

* コンテナを管理する

Docker compose

* コンテナ群の作成・削除機能はあるが
 コンテナ管理機能はない
- Kubernetes Docker compose
コンテナ作成/破棄 可能 可能
コンテナ管理 可能 不可

【3】docker-composeコマンド

1)docker-compose up -d
2)docker-compose ps
3)docker-compose down

※ それ以外は、以下のサイトを参照のこと。

https://qiita.com/ryuichi1208/items/8b5adc88a93319cb76a2

1)docker-compose up -d

* docker-compose up は、サービス起動
* -d は、バックグラウンド起動

2)docker-compose ps

* コンテナ一覧表示

3)docker-compose down

* コンテナ・ネットワーク・イメージ・ボリュームの停止と削除
 => stop は、サービスの停止

全て(※1)を一括消去するコマンド

docker-compose down --rmi all --volumes --remove-orphans

※1
コンテナ、イメージ、ボリューム、ネットワーク、未定義コンテナ

https://qiita.com/suin/items/19d65e191b96a0079417

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/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 ~ docker-compose の サンプル ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100
Docker によるトラブルシューティング
https://dk521123.hatenablog.com/entry/2017/09/24/162257