Dockerコンテナの中身を少し調べた✐
■①DockerDesctop
・DockerをGUIで操作するためのもので、コンテナの稼働、停止、再開、廃止などの操作ができる。
・コマンドラインでも操作できるけど準備が必要。
・コンテナの作成はコマンドラインで行う必要がある。
<含まれているもの>
Docker デーモン(dockerd )、Docker クライアント(docker)、Docker Compose、Docker Content Trust、Kubernetes、 Credential Helper)
■②Docker Compose
複数のコンテナを一括で操作できるツール
docker-compose.ymlファイルに定義が書いてあるのでdoker composer upコマンドで必要なコンテナをまとめて起動することができる。
■③コンテナに入って確認や操作できる
コンテナに入るとは?
作成した仮想環境に入るということ!そのまんまの言い方になった
自分のPC上に全く新しいPC環境をつくるみたいな?
*確認*
・ローカルでphp -vコマンドを叩くと、php8.2のようなバージョンが出てくる。
・次のコマンドで生成した仮想環境に入ってから php -vコマンドを叩くと、dockerで指定したphpバージョンが表示される。→ 自分のPCに違う空間(コンテナ)が作成されていると分かった。
docker exec -it コンテナ名 /bin/bash
(コンテナ名はdocker-compose.ymlに記載してあるcontainer_nameの値)
■コンテナの中🫀
・コンテナたちはDockerエンジンによって作られている
Dokerエンジン・・・アプリを構築してコンテナ化するもの
・Dockerエンジンは、クライアント・サーバー型アーキテクチャ
これはサーバーとクライアントで構成されるシステムのことで、
この2つはネットワークでつながっている
・サーバー・・・・・アプリやDBなどの管理して、機能を提供するPC
・クライアント・・・サーバが管理しているもの、機能を使用するPC
・Dockerエンジンの中にクライアントとデーモンというものがある!
-
Dockerクライアント(=Dockerエンジンのクライアント)
・コマンドの発行(Docker CLI)= 人間がするやつ
・REST APIによってデーモンと通信する(Docker Comoiseもこっち側) -
Dockerデーモン(=Dockerエンジンのサーバー)
・Dockerコマンドの受付
・Dockerオブジェクトの管理(イメージ、コンテナ、ネットワーク、ボリューム、プラグイン)
・コンテナの構築、実行、配布などDocker の核となる大事な作業をする -
Dockerレジストリ
・dockerイメージの保管場所(Dockerhub)
■Dockerとのやりとり
- アプリはDockerで管理しているので、確認したいことや変更、操作したいことはDockerを使用しなければならない。
- Dockerを動かすときはLinuxコマンドやsqlコマンドを使っている。(DockerはLinuxカーネル上にあるから)
- このコマンドを使ってDockerを操作しているということは、Dockerクライアントを使って操作しているということ
Discussion