takumiblog

学習日記

Docker Composeについて

Docker Composeとは

yaml形式の設定ファイルで、複数のコンテナ実行を一括で管理することができる。

ファイルはこんな感じ

version: "3"
services:
  echo:
    build:  . 
    image:イメージ名:latest
    ports:
      - 9000:8080

設定ファイルにbuildを追加し、docker-compose up --buildとするとイメージのビルドも行うことができる。

Dockerイメージとコンテナについて

Dockerイメージとコンテナの関係性

Docker イメージ
アプリケーションを実行するための設定をまとめたもの。
Dockerコンテナを作成するために利用されるもの。

Dockerコンテナ Dockerイメージを基に具体化されたファイルシステムとアプリケーションが実行されている状態。
また一つのイメージで複数のコンテナを作成することができる。

Dockerfileについて

DockerfileはDocker独自のインストラクション(命令) で構成されるファイル。

FROM
Dockerイメージのベースとなるイメージを指定する。 Docker Hubというレジストリを参照している。

RUN
Dockerイメージビルド中に実行するコマンド

COPY
作成したファイルをコンテナで実行するためにコンテナ内にコピーを行う。
CMD
Dockerfile内では一度しか実行できないもの。
コンテナ内で実行するプロセス?を指定する。

Dockerとは

Dockerとは

コンテナ型仮想化技術を実現するためのプロダクト。
従来は、必要なパッケージマネージャーをそれぞれ取り込む必要があったたが、その手間を解消し環境を簡単に構築できるようにしたもの。
更にローカル環境だけではなく、本番環境での利用することができる。
Dockerfileでコンテナ情報をコードで管理することができる。

Dockerの利点

環境差分が発生しない

Aというサーバにデプロイして、Bというサーバーに同じものをデプロイしても同じように動作しないことがあったが、これを解消し冪等生を保つことができる。

アプリケーションとインフラをセットで構築できる

従来は、アプリケーションを作成したら、どこかのサーバにデプロイする必要があったが、DockerはOS(インフラ)とアプリケーションを同梱した箱のようなものなので、セットでビルドができる。

アプリケーションの構成管理のしやすさ

Docker Composeというyaml形式のファイルで様々な構成を管理することができる。