概要
2017年1月18日にリリースされた Docker v1.13 以降(今日現在の v17.03.0-ce )は、 docker コマンドラインの命令体系が再編成されました。本記事では変更に至った背景と、新旧コマンド体系の比較情報を整理します。
新しいサブコマンド体系の導入と背景
新しいコマンド体系の導入に至ったのは、docker のトップレベル・コマンド群が 40 を越える状況(当時)となったためです。コマンドには頻繁に使うものもあれば、使わないものもあり、再編成されることになりました。
v1.13から論理オブジェクト単位にコマンドが再編成されました。これは、「何」(コンテナやイメージ、ネットワーク)を、「どうするか」(作成、一覧、起動、停止)で扱います。そのため、従来よりもコマンドの利用目的が分かりやすくなります。たとえば、コンテナを管理する docker container サブコマンド群や、イメージを管理する docker image サブコマンド群の下で、これまでのコマンドが使えるようになります。
例:
-
docker psはdocker container ls(コンテナの一覧) -
docker imagesはdocker image ls(イメージの一覧) -
docker historyはdocker image history(イメージの履歴)
そして、これらの新コマンドは従来のコマンドと互換性があり、サポートは続いています。しかし、v1.13 以降、Docker は新しいコマンド体系の採用を推奨しています。
docker container コマンドはコンテナを管理
| 新コマンド | 旧コマンド | 説明 |
|---|---|---|
| docker container attach | docker attach | 実行中のコンテナにアタッチ |
| docker container commit | docker commit | コンテナに対する変更から新しいイメージを作成 |
| docker container cp | docker cp | コンテナとローカル間でファイルとディレクトリのコピー |
| docker container create | docker | 新しいコンテナの作成 |
| docker container diff | docker diff | イメージとコンテナの変更情報を調べる |
| docker container exec | docker exec | 実行中のコンテナ内でコマンド実行 |
| docker container export | docker export | コンテナのファイルシステムをtarアーカイブ化 |
| docker container inspect | docker container inspect | コンテナの詳細情報を表示 |
| docker container kill | docker kill | コンテナのプロセスを停止(kill) |
| docker container logs | docker logs | コンテナのログを表示 |
| docker container ls | docker ps | コンテナ一覧の表示 |
| docker container pause | docker pause | コンテナのプロセスを一時停止(pause) |
| docker container port | docker port | コンテナが使用しているポート情報の表示 |
| docker container prune | (v1.13~) | 停止中の全コンテナを削除 |
| docker container rename | docker rename | コンテナの名称を変更 |
| docker container restart | docker restart | コンテナを再起動 |
| docker container rm | docker rm | コンテナの削除 |
| docker container run | docker run | 新しいコンテナを実行 |
| docker container start | docker start | 停止中のコンテナを起動 |
| docker container stats | docker stats | コンテナのリソース使用状況を表示 |
| docker container stop | docker stop | 実行中のコンテナを停止 |
| docker container top | docker top | コンテナが実行しているプロセスを表示 |
| docker container unpause | docker unpause | 一時停止中のコンテナを再開 |
| docker container update | docker update | コンテナの(リソース)設定を変更 |
| docker container wait | docker wait | コンテナが停止するまで待機 |
強調部分は新旧コマンドで単純に docker container コマンド と実行できないものです。また、リファレンスには書かれていませんが、 docker container ps や docker container ls でも docker ps と同じ結果が表示できます。
docker image コマンドはイメージを管理
| 新コマンド | 旧コマンド | 説明 |
|---|---|---|
| docker image build | docker build | Dockerfile からイメージを構築(ビルド) |
| docker image history | docker history | イメージの履歴を表示 |
| docker image import | docker import | tar 形式のファイルを読み込み、イメージを作成 |
| docker image inspect | docker inspect | イメージの詳細情報を表示 |
| docker image load | docker load | tar 形式または標準入力からイメージを読み込む |
| docker image ls | docker images | イメージ一覧表示 |
| docker image prune | (v1.13~) | 使用していないイメージを削除 |
| docker image pull | docker pull | イメージをレジストリから取得 |
| docker image push | docker push | イメージをレジストリに送信 |
| docker image rm | docker rmi | イメージを削除 |
| docker image save | docker save | イメージを tar 形式または標準出力にストリーム |
| docker image tag | docker tag | イメージを参照する新しいタグを付ける |
リファレンスには書かれていませんが、 docker image list でも docker images と同じ結果が表示できます。
参考
- Introducing Docker 1.13 - Docker Blog
- https://blog.docker.com/2017/01/whats-new-in-docker-1-13/
- Reference documentation - Docker Documentation
- https://docs.docker.com/reference/

