はじめに
今までVagrantを使っていてこれからDockerを学びたい人(自分を含む)向けにVagrantとDockerのコマンドを機能別に対応関係をまとめました。
厳密に言うと異なりますが、概要の理解に繋がれば幸いです。
まだDockerの勉強中の身なので、アドバイス等あればコメントでお待ちしています。
Vagrantとは
仮想環境を管理するためのソフトウェア
参考
Dockerとは
コンテナ型の仮想環境を管理するソフトウェア
参考
- 公式サイト
- 公式リファレンス
- Docker入門(第一回)~Dockerとは何か、何が良いのか~
- https://qiita.com/shiro01/items/04ca672a93384b463701
概念の対応関係
| 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の新コマンドと一緒に覚えると分かりやすい