🔥

【インフラ_23日目_2回目】Docker_1冊目

2024/08/25に公開

こんにちは投資ロウトです。

背景

・過去に簡単にDockerの学習を行っておりましたが、環境構築を行なっていく必要があり、急ピッチでDockerを習熟してサービスをリリースしていかなければいけない背景があります。

Docker Compose

Docker Componse・・・1つのテキストファイルで、一気に実行したり、停止や破棄ができるもの。
→AWSのCloudformationのDocker版のように感じました。

【Dockerfileとの違い】
・Docker Compose・・・コンテナと周辺環境が作れる
・Dockerfile・・・ネットワークやボリュームは作れない

Docker Composeを利用するには「docker-compose.yml」を作成する

【Docker Composeのコマンド】
「up」コマンド・・・runコマンドによく似ている
「down」・・・コンテナとネットワークの停止 & 削除
※停止だけさせたいなら、stopコマンドを使う

Docker Composeの定義ファイルの作成

docker-comopse.ymlの書くべきこと

version: Docker Composeのバージョン
services: コンテナのこと
networks: ネットワークのこと
volumes: ボリュームのこと

※yamlでタブは禁止

その他yamlルール
・「-」があると、複数指定ができる
・「:」の後に空白が必要

【定義内容】
・depends_on・・・依存関係があることを示す
※作る順番を指定
・restart・・・コンテナが止まった時に再度実行しようとする設定

Docker composeで構築

docker-compose.ymlの作成

version: "3.8"
services:
  # mysqlの定義
  doshidb001:
    # WordPressの関係で5.7が採用
    image: mysql:5.7
    networks:
      - doshipress000net1
    volumes:
      - doshisql000vol1:/var/lib/mysql
    restart: always # 必ず再起動する
    environment:
      MYSQL_ROOT_PASSWORD: doshirootpass
      MYSQL_DATABASE: doshipress
      MYSQL_USER: doshipress_user
      MYSQL_PASSWORD: doshi_password
  # WordPressの定義
  doshipress001:
    depends_on:
      - doshidb001 # MySQLのコンテナが先に作られることの依存性関係
    image: wordpress
    networks:
      - doshipress000net1
    volumes:
      - doshipress000vol2:/var/www/html
    ports:
      - 8081:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: doshidb001
      WORDPRESS_DB_USER: doshipress_user
      WORDPRESS_DB_PASSWORD: doshi_password
      WORDPRESS_DB_NAME: doshipress
networks:
  doshipress000net1:
volumes:
  doshisql000vol1:
  doshipress000vol2:

docker composeを実施する

docker compose -f ファイルのパス(docker-compose.ymlの) up -d

コンテナの確認

docker ps

localhost:8081にアクセスしてみる

アクセスできました。

使い終わったので、削除していきます。

docker compose -f ファイルのパス down

削除し終わった後に、イメージとボリュームは削除されないので、手動で削除とのこと。

イメージの確認

docker image ls

wordpress等はいらないので、削除していきます。

docker image rm e826d932809c

ボリュームの確認

docker volume ls

ボリュームも削除する

docker volume rm ボリューム名

ちなみに停止だけは以下でいいとのこと

docker compose -f ファイルのパス stop オプション

と短いですが章が変わるので、以上で学習を区切りたいと思います。ご精読ありがとうございました。焦らずコツコツ頑張っていきたいと思います。

Discussion