681 文字
3 分
Docker関連の基礎知識

Dockerについて#

Dockerとはコンテナ型仮想化ソフトウェアの一つです。
公式サイトではアプリケーションの開発・実行・配布するためのプラットフォームと書かれています。

コンテナ型仮想化#

コンテナ型の仮想化ソフトウェアは、ホストOSにインストールしてコンテナという単位でアプリケーションを管理します。コンテナをアプリケーション単位で分けると、それぞれアップデートしやすかったり、依存関係がわかりやすくなります。 例:PHPとMySQLのサーバーを動かす場合、2つのコンテナを起動 コンテナ型の仮想化はゲストOSを持たないので、ホストマシンからLinuxカーネルを借りなければならないです。 ※カーネルとはOSの中核をなすソフトウェアのこと

コンテナについて#

Dockerのコンテナは、あるコマンドの1つを実行するためのホストマシンに作られる領域のことです。
この領域とはプロセスやファイルなどを、ホストマシンや他のコンテナと影響し合わないようにするための独立した範囲のことです。

プロセスについて#

プロセスとは実行中のプログラムのことです。
Linuxのプロセスの場合、コマンドを実行するとプロセスが生成され、役目を終えるとプロセスが終了します。
例:lsと打つとlsコマンドのプロセスが生成され、ファイル一覧が表示された後にlsコマンドのプロセスが終了する

Docker Engine#

デーモンと呼ばれる常設プロセス、デーモンが提供するAPI、CLIクライアントの3つを含む、アプリケーションパッケージのことです。
デーモンはクライアントからの命令を待ち、命令が来たらコンテナの構築や実行をします。
CLIクライアントはdocker runのようなDockerコマンドのことで、APIを通してデーモンに命令を伝えます。

Docker Compose#

複数のコンテナを一括で操作するためのツールのことで、docker compose upのようなコマンドを提供してくれます。複数のコンテナの操作をyamlファイルの定義に従い、1つのコマンドで実行してくれます。
Dockerを使用した開発環境では、複数のコンテナが必要になる事が多いので、

Docker Image#

イメージはコンテナに実行に必要なパッケージで、複数のレイヤと呼ばれるtarファイルから成り立ちます。
コンテナはイメージから作成されるので、複数人で同じコンテナを起動したい場合イメージを共有すれば可能です。
イメージはDockerHubなどのサービスで公開されており、利用したい場合はダウンロードする事ができます。
レイヤについては詳しく知りたい場合は下記のサイトを見ると参考になるかもしれません。
Dockerfileを理解して書きたくてレイヤ構造を拝んできた忘備録