【インフラ_23日目_2回目】Docker_1冊目
こんにちは投資ロウトです。
背景
・過去に簡単に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