【今日の振り返り】
用語をまとめるに時間がかかりすぎた。
やることが非常に多くなり時間の使い方を考えなければいけない。
何かを取り入れるため、何かを捨てなければいけない、または縮小しなくててはいけない。
ひとまず今日はここまでと区切り、明日また再開する。
◯ Dockerについて
コンテナの概念として2つがある
:1つのコンテナに1つのアプリという方針
・システム・コンテナ
:1つのコンテナに全体ののアプリが集約されている方法
アプリケーション・コンテナの利点
全体に影響を避けることが出来る
・スケールアップをする際にも、それぞれが独立しているので
問題発見がわかりやすい
一般的なアプリケーションは複合的に設計されており、
複数の組み合わせから形成されているため、 Nginxを利用するにも、
システム・コンテナ(コンテナが1台)だと2つの起動する際に
設定が必要となる。
アプリケーション・コンテナの場合はそれぞれが独立して
Nginxを利用することが出来る。
ただし全てのコンテナを作っていくのは大変手間がかかります。
そのためDocker Compose(ドッカー・コンポーズ)というものを利用
Docker Composeはプロジェクトと呼ばれる単位で
アプリケーションを扱い、それぞれの設定を変えなくても
複数の環境の形成を用意にします。
Docker Composeとは複数のコンテナで動作する
Dockerアプリのツールの事をさします。
docker-composeコマンドを使用することで、
Dockerに「プロジェクト作成」の指示を与えます。
利点
・1つのホスト(ローカル)に複数の環境を動かす
・プロジェクト事にネットワーク環境を分離して形成
・コンテナのボリュームデータ(DBなどの保存されたデータ)を
プロジェクト毎に保持
・
環境変数の設定を、次回のコンテナでも再利用する設定が可能
DockerComposeを利用するためには、
YAMLファイルが必要
Dockerコンテナを用いるアプリの設計図のこと。
Dockerがセットアップされていれば、読み込むだけで
複数コンテナのアプリを実行できる。
環境構築、EC2の設定からなにからを含めて
YAMLファイル一つで
作成できてしまいます。
そのためDockerを利用できる=
YAMLファイルが理解できているDockerComposewo利用して、コンテナを活用出来るのことが目安です。
ただしDocker単体での運用は非効率のため、
Kubernetesが多く取り入れられているところがあります。
①アプリの実行前に、アプリの理想的な状態を
設定ファイルで定義しておく
現在と理想的な状態を自動で比較をする
③状態に差分が出たら、自動的に調整を行う
例)
複数のコンテナ(5個)が立ち上がっている状態が理想状態のアプリが
あった場合、 0個(起動されていない状態)だと5個のコンテナを
自動的に起動させる。 また2つのサーバーが何かしらの障害が発生
した場合、自動的に2個のサーバーを立ち上げてくれる
ありましたが、
Kubernetesに関しては、コンテナのアプリを実行させることが出来ること、 数百台以上のサーバー管理が出来るため、大規模開発に向いているためとなります