🐶

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