0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerの基本概念

Last updated at Posted at 2024-05-18

概要

ここでは、Dockerの以下の概念についての関係性についてを明確にする。

  • Dockerfile
  • Docker Image
  • Docker Container
  • Volume
  • Network

Dockerとは?

そもそもDockerとはなんなのだろうか。

Dockerは、コンテナ(Docker Container)という隔離(isolated environment)された環境でアプリケーションのパッケージ化と実行をする機能を提供する。

Dockerは、インフラとアプリケーションを切り離す。

インフラとは、サーバーやネットワークなどの計算資源の基盤となるもの。

  • Dockerについてのメモ
    • アプリケーションをパッケージ化し、実行する機能を持つ
    • アプリケーションを管理するのと同じ方法でインフラを管理することができる
    • ソフトウェアを短時間で提供できる
    • Dockerはコンテナのライフサイクルを管理するツールとプラットフォームを提供する

なぜ、Dockerを利用するのか?

Dockerの使用目的は、主に以下の三つが考えられる。

環境統一

Gitなどのバージョン管理ツールでDockerの設定ファイルごと管理しておくことで、開発環境や本番環境を統一することができる。
例えば、開発環境をコンテナ上で構築した場合には、ホスト上にJDKのインストールが不要になる。

このバージョンが変わった場合にも、masterで変更すれば、開発者がホスト上で何かしらの設定をする必要はない。

依存関係の管理

使用するライブラリやパッケージなどをDockerfileで管理することができる。

隔離

Dockerコンテナ上はホスト上の他のプロセスから完全に隔離された環境となる。
そのため、ホスト上で実行中のプロセスからの影響を受けない。加えて、ライブラリやパッケージなどのインストールの制約を受けない。

Dockerの基盤技術

Dockerは以下のLinuxカーネルの機能により構成される。

  • namespace
    • 実行中のプロセスに対する隔離(isolate)を提供し、システムリソースに対するアクセスを制限する。
  • cgroup
    • システムリソースをグループごとに管理する

Dockerの重要概念について

詳細は、こちらを参照。

Dockerのアーキテクチャ
スクリーンショット 2023-12-18 19.53.01.png

以下では、Dockerオブジェクトについての詳細を記載する。

Docker Image

Dockerコンテナを作成する命令が入った読み込み専用のテンプレートのこと。
レジストリに公開されたイメージもしくは、カスタムのイメージからコンテナを作成することができる。

imageを作成する場合には、Dockerfileというファイルを生成する必要がある。
Dockerfileは、イメージを生成してから作成するまでの手順を定義する。

Docker Container

imageが実行状態となったインスタンスのこと。
ホストOSマシン上にある他すべてのプロセスから隔離されている。

例えば、ホストOSや異なるコンテナのプロセスはコンテナ上で実行されているプロセスを認識できない。

Linuxのnamespacecgroupによリ実現している。

Docker APIやCLIを使用し、コンテナの作成・開始・停止等をすることができる。(docker runなど)

ファイルシステム

コンテナでは、隔離された特別なファイルシステムを使用する。

イメージにはコンテナのファイルシステムが含まれており、アプリケーションの実行に必要な全てを含む必要があります。

Network

コンテナ同士は隔離されているが、コンテナにNetworkの設定をすると、コンテナ間での通信が可能となる。

Volume

ホストOSのVolumeをコンテナ内のファイルシステムにマウントすることができる。
この領域は、ホストOSとコンテナとの間で共有され、もしコンテナを停止した場合にもデータは削除されない。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?