すきとおった沼日記

勉強したこと、共有したいことを書いています

Dockerの概要を1分で読む

目標

Dockerについて、概要レベルで理解をしたい。 「Dockerはコンテナを使った便利な技術だよ!」って程度しか知らないし使ったこともないけど, 便利そうだから勉強して使えるようになりたい。

Dockerとは

コンテナ型仮想化技術を実現するためのアプリケーションと、それを操作するためのコマンドインターフェースからなるプロダクトです。Docker Hubなどの周辺サービスも含んでDockerと呼ぶこともあるようです(Git とGit Hub的な感じ)。

コンテナ型仮想化とは

仮想化ソフトを使わず、OSインストールの手順を踏まずに環境をコンテナとして構築する事ができます。そのため、複数の環境を構築する際のオーバーヘッドを減らすことができます。OSとしての動作を検証したい様な場合は、コンテナでは検証できないため仮想化ソフトを使ったほうが良いこともあります。

f:id:akiyoshi_huji:20200804195225j:plain
Dockerによる環境構築イメージ

Dockerの利用目的

DockerはOSレベルの問題をできる限り取り扱わず、 「アプリケーションをデプロイするための環境を簡単に作る」ことを目的にして使うことになります。

コンテナのライフサイクル

まずDocker Hubからのpullや、Dockerfileからのbuildによりdocker imageを作成します。作成したイメージをコンテナとしてコマンドにより操作が可能になります。コンテナは「起動」「停止」「破棄」のライフサイクルで運用します。
コンテナ型仮想化により、OSのオーバーヘッドが少ない分、容易にサイクルを回すことができます。

f:id:akiyoshi_huji:20200804212452j:plain
Dockerのライフサイクル