DockerのコマンドをVagrantのコマンドと並べて理解する


はじめに

今までVagrantを使っていてこれからDockerを学びたい人(自分を含む)向けにVagrantとDockerのコマンドを機能別に対応関係をまとめました。
厳密に言うと異なりますが、概要の理解に繋がれば幸いです。
まだDockerの勉強中の身なので、アドバイス等あればコメントでお待ちしています。

Vagrantとは

仮想環境を管理するためのソフトウェア

参考

Dockerとは

コンテナ型の仮想環境を管理するソフトウェア

参考

概念の対応関係

Vagrant Docker
ホストOS Linux,Windows,mac OS etc. Linux
扱う仮想化技術 ホストOS型 コンテナ型
仮想環境ベース パッケージ イメージ
仮想環境 Virtual Machine(VM) コンテナ
設定ファイル Vagrantfile dockerfile

コマンドの対応関係

ここではオプションは割愛します。
Docker v1.13以降でコマンド体系が変わったようなので可能な限り新旧どちらのコマンドも記載します。旧コマンドは「何を」操作しているか見えなかったのが、新コマンドは「何を」の部分が必要になったためVagrantの対応関係も比較的わかりやすいです。

仮想環境ベースの操作

操作 Vagrant Docker
追加 vagrant box add (新)docker image pull
(旧)docker pull
一覧 vagrant box list (新)docker image ls
(旧)docker images
作成 vagrant package (新)docker image build
(旧)docker build
削除 vagrant box remove (新)docker image rm
(旧)docker rmi

仮想環境の操作

操作 Vagrant Docker
初期化 vagrant init -
起動 vagrant up (新)docker container start
(旧)docker start
一覧 vagrant global-status (新)docker container ls
(旧)docker ps
終了 vagrant halt (新)docker container stop
(旧)docker stop
削除 vagrant destroy (新)docker container rm
(旧)docker rm
ssh接続 vagrant ssh (新)docker container exec -it {コンテナID} bash
(旧)docker exec -it {コンテナID} bash

参考

まとめ

  • Vagrantのpackage = Dockerのimage
  • VagrantのVM = Dockerのコンテナ
  • Dockerの新コマンドと一緒に覚えると分かりやすい