【Docker基礎】上位コマンドは省略できるの?

 Docker のコマンドは、「上位コマンド + 副コマンド」という形式に統一されましたが、実は上位コマンドを省略した書き方もまだ通用します。これは過去との互換性を保つために残されている機能であり、将来的に廃止される可能性もあるので注意が必要です。ここでは、その背景と具体例を見ていきましょう。

Docker 1.13 からの再編成

  • Docker 1.13 以前
    ・「docker run」や「docker pull」など、単一コマンドとして機能が提供されていた。
  • Docker 1.13 以降
    ・コマンド体系が再編成され、上位コマンド + 副コマンド という形式に移行
    ・例: docker container rundocker image pull など

旧コマンド vs. 新コマンド

旧コマンド (省略形)新コマンド (上位コマンド + 副コマンド)
docker rundocker container run
docker pulldocker image pull
docker psdocker container ls

ポイント

  • 「旧コマンド」はいまだ使えるが、将来的には切り捨てられる可能性がある。
  • ドキュメントやスクリプトを書き換える際、新コマンド形式を意識するとよい。

古い書き方の互換性

Docker では過去のバージョンや習慣への配慮もあり、旧式の書き方も利用可能 です。

# 旧式
docker run penguin

# 再編成後(上位コマンドつき)
docker container run penguin

 現在はどちらの書き方でも実行できますが、将来的にいつまで対応されるかは不明。大幅なバージョンアップがあった際に、旧式書き方が通用しなくなる可能性もあるので要注意です。

「単独コマンド」(Solo Command) の存在

  一部のコマンドは、いまだに上位コマンドなしの「単独コマンド (Solo Command)」として残っています。例えば、docker versiondocker info などは「上位コマンド」が存在せず、そのままの形で使います。

単独コマンド説明
docker versionDocker のバージョン情報を表示
docker infoDocker の各種設定や状態を表示

ヒント

  • こちらは新旧どちらの体系でも同じ扱い
  • 副コマンドとして整理しづらいコマンドは、単独コマンド扱いになっている

将来的な変更に注意

 今は古い書き方でも動作しますが、Docker Engine の大きな変更(例えば、メジャーバージョンアップ)で互換性が切り捨てられる可能性も否定できません。将来「コマンドが通らなくなった」という壁にぶつかった際は、まずは 「上位コマンド付きの新しい書き方」に直してみる ことを検討してください。

まとめ

  1. 上位コマンドの省略は依然可能
    ・旧コマンド (docker run, docker pull など) はまだ動作するが、将来なくなるリスクがある。
  2. Docker 1.13 以降は「上位コマンド + 副コマンド」が基本
    docker container run, docker image pull などを推奨
  3. 単独コマンド (Solo Command) も存在
    docker versiondocker info など
  4. 将来的な互換性を考えるなら、新コマンド形式を覚えておこう
    ・ドキュメントやスクリプトは「上位コマンド付き」で書くのが安定

 このように、上位コマンドを省略した旧式の書き方は便利な反面、長期的には互換性の面で不安も残ります。今後の学習や実務では、「上位コマンド + 副コマンド」形式を積極的に取り入れていきましょう。次回は、実際に簡単なコマンドを実行しながら Docker のバージョンや情報を確認してみます。