- Dockerの新旧コマンドの対応関係が知りたい!
- docker psコマンドが古いコマンドとは知らなかった…
このような方に向けて書きました。
2017年1月に公表されたDocker 1.13.0からは、新しいコマンドが導入されました。
これにより、より直感的なコマンド操作ができるようになっています。
本記事では新旧コマンドを対応づけながら、気になるポイントを解説していきます。
新旧コマンド対応表と新コマンドのメリット
以下は新旧コマンドの対応表です。
旧コマンド | 新コマンド |
---|---|
docker pull | docker image pull |
docker images | docker image ls |
docker rmi | docker image rm |
docker ps | docker container ls |
docker run | docker container run |
docker rm | docker container rm |
コマンドが長くなってしまったようにも見えます。
とはいえ、特に初学者の方にとっては新コマンドのメリットは大きいはずです。
新コマンドを使うメリット
大きく、以下の2つのメリットがあります。
- 何に対するコマンドかがわかりやすくなった
- サブコマンド体系が一貫化された
それぞれ解説します。
何に対するコマンドかがわかりやすくなった
新しいコマンドでは、image
に対する操作なのかcontainer
に対する操作なのかが明示されます。
例えばDockerイメージを取得する場合には、以下のように変更されました。
# 旧コマンド
docker pull nginx
# 新コマンド
docker image pull nginx
image
に対する操作であることがコマンドで明示されるので、よりイメージを浮かべながら操作できるようになったはずです。
特に初学のうちは「イメージ」に対する操作なのか、「コンテナ」に対する操作なのか見失ってしまいがちなので、この仕様変更は学習の助けになってくれるはずです。
サブコマンド体系が一貫化された
旧コマンドではサブコマンドの命名規則がバラバラでしたが、新しいコマンドでは一貫性を意識した命名に変更されました。
docker image
や docker container
の下に関連コマンドがまとまったイメージです。
具体的には以下の通り。
# 旧:コンテナ一覧を表示
docker ps
# 新:コンテナ一覧を表示
docker container ls
# 旧:イメージ一覧を表示
docker images
# 新:イメージ一覧を表示
docker image ls
ls
などの Linux コマンドと同じものが採用されたので、より覚えやすくなりました。
ちなみに…旧コマンドはまだ使える?
記事執筆時点(2025年1月現在)は、まだ旧コマンドが使えます。
とはいえDocker公式としては新しいコマンドが推奨になっており、将来的に旧コマンドが非推奨(Deprecated)となる可能性は大いにあります。
そのため、なるべく早い段階で新しいコマンドに慣れておく方が良いでしょう。
何より理解しやすいコマンドになってますので。
新しいコマンドは、目的ごとに “image” や “container” といったリソース名が明示されており、直感的に分かりやすくなっています。
イメージを操作するためのコマンドを解説!
docker image ls
Dockerイメージの一覧を表示するコマンドです。
➜ ~ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 80dd3c3b9c6c 7 weeks ago 139MB
hello-world latest 5b3cc85e16e3 20 months ago 21kB
REPOSITORY
はイメージの名前を、TAG
はバージョンが表示されます。
TAGはDocker Hubのtagsというセクションと対応しています。
docker image rm {イメージ名}
イメージを削除するコマンドです。
➜ ~ docker image rm ubuntu
Untagged: ubuntu:latest
Deleted: sha256:80dd3c3b9c6cecb9f1667e9290b3bc61b78c2678c02cbdae5f0fea92cc6734ab
➜ ~ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 8e5c4f0285ec 3 months ago 101MB
hello-world latest 5b3cc85e16e3 20 months ago 21kB
イメージIDでも削除できます。
➜ ~ docker image rm 8e5c4f0285ec
Untagged: ubuntu:20.04
Deleted: sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b
➜ ~ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 5b3cc85e16e3 20 months ago 21kB
コンテナを操作するためのコマンドを解説!
docker container run {イメージ名}
イメージをダウンロードして、コンテナを立ち上げるコマンドです。
➜ Desktop docker container run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
docker container ls
コンテナの一覧を取得するコマンドです。
docker container ls
起動していないコンテナも表示させたい場合には-aオプションをつけます。
docker container ls -a
docker container stop {コンテナ名}
起動中のコンテナを止めるコマンドです。
➜ ~ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29cc6a36c822 nginx "/docker-entrypoint.…" 22 seconds ago Up 22 seconds 80/tcp sad_lovelace
➜ ~ docker container stop sad_lovelace
sad_lovelace
上記のように、まずはコンテナ一覧を取得してから止める流れとなります。
docker container restart {コンテナ名}
コンテナを再起動するコマンドです。
➜ ~ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29cc6a36c822 nginx "/docker-entrypoint.…" 2 minutes ago Exited (0) 45 seconds ago sad_lovelace
82d28c77cb54 nginx "/docker-entrypoint.…" 6 minutes ago Exited (0) 4 minutes ago cool_euclid
➜ ~ docker container restart 82d28c77cb54
82d28c77cb54
上記では止まっている(Exited)コンテナを再起動させました。
以下のコマンドで、裏でコンテナが動いていることを確認できます。
docker container logs 82d28c77cb54
docker container rm {コンテナ名}
Exited
ステータスのコンテナを削除します。
➜ ~ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
82d28c77cb54 nginx "/docker-entrypoint.…" 11 minutes ago Up 3 minutes 80/tcp cool_euclid
➜ ~ docker container stop 82d28c77cb54
82d28c77cb54
➜ ~ docker container rm 82d28c77cb54
82d28c77cb54
➜ ~ docker container ls -la
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
コンテナが動いている場合は、docker container stop
で止めてから実行しましょう。
コメント