ぽれいんのブログ

エンジニアになるために覚えたことを日記に付けます。

Docker-compose

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

Docker Compose を使う|初心者が絵で理解する Docker

《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド - Qiita

docker-compose.ymlの書き方について解説してみた - Qiita

docker-compose の書き方! 分かりやすいDockerFileとの違い | SHURA-SPOT

 

 

 

 

docker-compose

docker-composeとは複数のコンテナから成るサービスを自動的に構築、起動してくれる便利なツール。コンテナを複数用意するため、管理がしやすい。

・イメージ図

f:id:porain:20210904190736p:plain



docker-compose インストール

curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

 

docker-compose.ymlの書き方

・基本構文

version: "3"
services:
web:
container_name: web
build: ./web
ports:
- "80:80"
volumes:
- ./work:/work
db:
container_name: db
build: ./db
ports:
- "3306:3306"
volumes:
- ./work:/work

・基本構文の意味

version:                    #composeファイル形式の宣言

services:                   #サービス。これの下にサービスの名称を記入

container_name:      #コンテナの名称

build:                       #Dockerfileのあるディレクトリを指定してイメージをビルド

ports:                       #公開用のポートの指定

volumes:                  #作業フォルダの同期

・こういうのもあるよ

environment:           #環境変数の指定

restart:  always        # いつもコンテナの再起動を実施

depends_on            # サービス間の依存関係を指定

 

 

 

便利

今までの状態を元に戻す場合(破滅の呪文)
docker-compose down --rmi all --volumes --remove-orphans
docker rm `docker ps -f "status=exited" -q`