1
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?

More than 1 year has passed since last update.

ドッカー(Docker)のドの字について調べてみた

Posted at

はじめに

割とよく耳にするけど実態はよくわからない......
そんなコンテナ技術の1つであるDockerについて自分なりに調べてまとめてみた
間違ってたりこんなこともできるよ!などありましたら教えていただけると助かります

結論

コンテナとは

  • 1つのOS上でプロセスを仮想的に分離する仕組み
    ⇒ アプリケーションを実行するための領域(名前空間)を複数に分割して利用する

Dockerとは

  • インフラ関係やDevOps界隈で注目されている仮想化技術
  • Docker社が開発
  • コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム

目次

  1. 従来の仮想化との違い
  2. コンテナで重要な技術(Linuxカーネルの機能)
  3. メリット
  4. 参考文献

従来の仮想化との違い

従来の仮想化(ハイパーバイザ型)

ホストOS上にてハイパーバイザのソフトを動かし、その上で仮想マシンを動かす

コンテナ型

ホストOS上のプロセスを仮想マシンとして動かす
⇒ コンテナ内のアプリはコンテナ内のコマンドやライブラリを通して、ホストOSのカーネルを利用
(※ホストOS上で利用してるアプリの動作と同じ処理のため負荷が少ない)
image.png
image.png

コンテナで重要な技術(Linuxカーネルの機能)

  • namespace(名前空間)
    プロセスやネットワーク、ファイルアクセスなど複数の種類があり、それぞれが異なるリソースの隔離する
  • cgroup
    プロセスグループのリソース(CPU、メモリ、ディスクI/Oなど)の利用を制限・隔離する
    コンテナへリソースの割り当てと制限する
  • Capability
    スーパーユーザーとしての機能を制限する
    DockerコンテナへHostOSのrootユーザーの権限を制限し、最小限の権限を付与/管理を行う

メリット

1. 軽量

ホストOSのカーネルを用いて
そのプロセスのひとつとしてコンテナを作成するため
データ容量が小さく済むイメージ(=コンテナを作成するためのファイルシステムや設定をまとめたデータ)を
レイヤーで管理して、 同じイメージは共有して利用する

2. 複製が容易

インターネット上に公開されているリポジトリから
取得可能プライベートなDockerリポジトリも作成が可能

メリット①:軽量

イメージのレイヤー化

コンテナ構築時のファイル操作は読み取り専用の「イメージレイヤ」に記録
イメージレイヤはハッシュ値で管理され、Docker実行環境内でキャッシュ・共有される
プログラム実行時の書き込みは最上位の「コンテナレイヤ」に記録される
キャッシュを活用できるように、プログラム開発時は共通イメージをベースにすると良い
image.png

メリット②:複製が容易

Dockerhub

Dockerhubには多様なイメージが蓄積され、コマンド一発で入手可能
(RPMのようなアプリケーションパッケージのイメージで利用する)
Githubなどとの同期により自動イメージ化できるので、配布も楽
なお、プライベートにDockerhub相当の機能を作るソフトも提供されている
image.png

リポジトリ利用の利点

リポジトリ内ではコンテナのイメージレイヤ単位で管理されているため、
パッケージの配布も効率的に処理することができる
image.png
image.png

参考文献

1
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
1
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?