Edited at

Dockerについてなるべくわかりやすく説明する

More than 1 year has passed since last update.


想定読者


  • Dockerについてものすごくざっくり知りたい人


  • ハイパバイザ型とかホスト型とかそう言う話は調査済みもしくはあとで調べればいいと思っている人


Dockerとは

 Dockerを使えば、OSとアプリがインストールされた環境を閉じ込めて保存しておき、いつでもその環境を立ちあげることができます。"perlをインストールしたUbuntu"とか"JavaとpythonをインストールしたCentOS"みたいな色々なパターンを簡単に作成して保存・立ち上げが可能です。


用語

 なるべく事前知識がなくても理解できるようにDockerの用語を冷凍チャーハンに例えて説明します。

*厳密性に関してはご容赦ください


ファイル系

用語
説明
例えると

Dockerイメージ
OSとアプリがインストールされた環境を閉じ込めたファイル
冷凍チャーハン

コンテナ
解放されたOSとアプリの環境
皿に盛ったチャーハン

Dockerfile
Dockerイメージ作成時に実行するコマンド等を列挙したファイル
チャーハンのレシピ


サービス・ツール系

用語
説明
例えると

Docker Hub
ベースとなるDockerイメージがあるサイト
多様な冷凍チャーハンがおいてある倉庫

Docker Compose
複数のコンテナを同時に扱うためのツール
複数段あって温め順等を設定できる高機能な電子レンジ


コマンド系

コマンド
説明
例えると

docker build 〜
DockerfileをビルドしてDockerイメージを作成する
冷凍チャーハン製造機を起動し製造を開始する

docker run 〜
Dockerイメージをrunしてコンテナを立ち上げる。

 オプション指定で、特定ディレクトリのマウントや起動/終了時の処理指定などが可能。
冷凍チャーハンを解凍する。

 解凍後、餃子をセットで食べるか、食前の下ごしらえ/食後の片付けをどうするかなども決められる。

docker pull 〜
Docker HubからDockerイメージをダウンロードする
倉庫から特定の冷凍チャーハンを持ってくる

[ctrl-d]
起動中のコンテナの中から外に出る&コンテナを停止する
チャーハンを食べるのをやめて冷ます

[ctrl-p] [ctrl-q]
コンテナを起動したままコンテナの中から外に出る
チャーハンののった皿を保温剤にのせてラップをする

docker exec 〜
起動中のコンテナの中に入る
ラップしてあるチャーハンのラップを外す

docker start 〜
停止中のコンテナを起動する
冷めたチャーハンを温める

docker stop 〜
起動中のコンテナを停止する
チャーハンを冷ます

docker restart 〜
コンテナを再起動する
チャーハンを冷まして温める

docker images
Dockerイメージの一覧を表示する
冷凍庫にある冷凍チャーハンの一覧をみる

docker rm 〜
コンテナを削除する
チャーハンを皿ごと捨てる

docker rmi 〜
Dockerイメージを削除する
冷凍チャーハンを捨てる

docker ps
起動中のコンテナ一覧を表示する
あったかいチャーハンがのった皿を全て見る

docker ps -a
停止中のコンテナも含めて全てのコンテナ一覧を表示する
冷めたチャーハンも含めてチャーハンがのった皿を全て見る

docker commit 〜
コンテナをイメージ化する
食べていたチャーハンを再冷凍する

docker save 〜
Dockerイメージをtar.gz形式で保存する
冷凍チャーハンを冷凍庫だけでなくクーラーボックスにもおいておく

docker load 〜
tar.gz形式で保存されたDockerイメージをインポートする
冷凍チャーハンをクーラーボックスから冷凍庫に入れる


終わりに

 "冷凍チャーハン"ばかり打ってたら冷凍チャーハンがゲシュタルト崩壊したのでとりあえずここまでにします...。docker composeだったり他の細かいコマンドも書こうかと思ったのですが、とりあえずまた気が向いた時に追記しようかなぁ...といった感じです。ちなみに、冷凍チャーハンにした深い理由は特にないです。読んでいただきありがとうございました。