はじめに
バイトで最近触りはじめたので、自分なりにアウトプットします。
初学者のメモ代わりなので内容は薄いです。
Dockerのメリット
環境構築の差異がない
Macとwindowsで開発環境が異なり、構築手順書が数種類必要だったり、windowsだけエラーが発生することがありますが、Dockerだと共通のコマンドを実行するだけで簡単に環境構築ができます。
また設定ファイルを共有すればプロジェクトメンバー間で同じ環境を作ることができます。
開発で動けば本番でもほぼ動く
Dockerイメージさえデプロイすれば動くので開発環境と本番環境の環境差分が生まれにくいです
Dockerとは
コンテナ型仮想環境を作成、実行、管理するプラットフォーム
- コンテナとは、一種の仮想環境(パソコンやサーバなど一つのハードウェアの中で、仮想的な環境を構築したもの)
- PCやサーバーにコンテナを作成して、コンテナの中でプログラムをプログラムを動かせます。
- コンテナごとに様々なアプリを実行することができる
Docker用語
Dockerfile
- Dockerイメージを作成するための指示書となる設定ファイル
- イメージをカスタマイズするときに使用
- ノーマルなイメージで設定が足りる場合は不要
- DockerではデフォルトでDockerfileという名前のファイルをイメージのビルドに使用
Dockerイメージ
- Dockerコンテナを作成するための雛形
- アプリケ、ライブラリ、設定ファイルなど必要なもの一式をまとめたもの
- 別サーバーでも同じ環境を再現できる
- Docker Hubに様々なイメージが公開されている。あとで触ってみたい
Dockerコンテナ
- Dockerイメージを元に作成されるコンテナ型仮想環境
- コンテナと呼ぶ
- Dockerでは、仮想環境=コンテナという認識
- イメージから同じコンテナを再現できる
コンテナを作る流れ
コンテナ ←[run]- Dockerimage ←[build]- Dockerfile
Docker Compose
- 複数のDockerコンテナやイメージを操作するためのツール
- 「docker-compose.yml」に記述することで、「docker compose」コマンドでまとめて実行できる
- 一気にコンテナまで作れる
- イメージやコンテナが何百もある場合、「docker compose」コマンドで実行できるので楽
- docker-compose.ymlを作れば、すぐに同じ構成の環境を別の環境に構築することが可能
Docker ComposeとDockerfile違い
おおまかな設定はDocker Composeに記述して、必要があればDockerfileに記述していく
nginx [エンジンエックス]
- Webサーバーのソフトウェア
Postgresql
- MySQLと同様にデータベースサーバーのソフトウェア
Node.js
- サーバサイドのJavaScript実行環境