dockerコマンドの使い方を学ぼう!dockerコマンドチートシート

docker
Pocket

dockerにはイメージやコンテナの概念があり、それに合わせ多数のコマンドがあります。「〇〇をしたいときはどのコマンドを使うのか」、「このコマンドのオプションはどういう意味だったか」と悩むことも多いのではないでしょうか。

本記事では、dockerコマンドの一覧をもとに、それぞれのコマンドの使い方を紹介します。dockerコマンドの使い方に悩んだときには、参考頂けると幸いです。

スポンサーリンク

dockerコマンド一覧

コマンド 説明
docker attach コンテナにログインする
docker build Dockerfileからイメージを作成する
docker commit コンテナからイメージを作成する
docker create コンテナを作成する
docker images イメージを確認する
docker ps コンテナを確認する
docker pull Docker Hubからイメージをダウンロードする
docker rm コンテナを削除する
docker rmi イメージを削除する
docker run コンテナを作成し、起動する
docker start コンテナを起動する
docker stop コンテナを停止する

dockerコマンドの共通点

タグを指定しない場合、タグは「latest」になる

「docker pull」や「docker rmi」などのコマンドでリポジトリとタグを指定することができますが、リポジトリのみ指定して実行した場合、自動的にタグは「latest」として認識されます。

docker pull ubuntu  #=> タグを指定しないため、「ubuntu:latest」として認識されます。

コンテナIDは省略しても判別できる

「docker attach」などのコマンドでコンテナIDを指定する場合、コンテナIDを省略しても自動的に判別してくれます。ただし、省略したコンテナIDが一意である必要があります。

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
af9dee97e872        ubuntu              "/bin/bash"         3 days ago          Up 3 days                               dazzling_davinci
a963b5d66658        ubuntu              "/bin/bash"         3 days ago          Up 3 days                               cocky_bose

$ docker attach af
root@af9dee97e872:~#
$ docker attach a
Error response from daemon: Multiple IDs found with provided prefix: a963b5d6665862fd672dc0c379f958e594b869863138e73b1c2850ed1158546

docker attach

コンテナにログインする

docker attach [コンテナID または コンテナ名]

docker build

Dockerfileからイメージを作成する

「-t, --tag」オプションで、リポジトリとタグを任意で付けることができます。

docker build -t [リポジトリ]:[タグ] [Dockerfileがあるパス]

docker commit

コンテナからイメージを作成する

docker commit [コンテナID または コンテナ名] [リポジトリ]:[タグ]

docker create

コンテナを作成する

オプションについては、「docker run」と同じであるため、「docker run」を参照ください。

docker create [リポジトリ]:[タグ]

docker images

イメージを確認する

docker images
docker images -q  #=> 「-q」をつけることで、イメージIDのみ取得できます。

「none」のイメージのみ確認する

フィルターオプションに「dangling=true」を指定することで、「none」のイメージのみ確認できます。

docker images --filter "dangling=true"

docker ps

コンテナを確認する

オプション無しの場合は、起動中のコンテナのみ確認できます。

docker ps
docker ps -a  #=> 「-a」を付けることで、すべてのコンテナを確認できます。

「Exited」のコンテナのみ確認する

フィルターオプションに「status=exited」を指定することで、「Exited」のコンテナのみ確認できます。

docker ps -a --filter status=exited

docker pull

Docker Hubからイメージをダウンロードする

docker pull [リポジトリ]:[タグ]

docker rm

コンテナを削除する

docker rm [コンテナID または コンテナ名]
docker rm -f [コンテナID または コンテナ名]  #=> 「-f, --force」を付けると、起動中のコンテナも削除できます。

コンテナを一括で削除する

「docker ps」コマンドですべてのコンテナIDを取得し、コンテナを一括で削除できます。

docker rm $(docker ps -a -q)

「Exited」のコンテナのみ一括で削除する

「docker ps」コマンドのフィルターオプションを使い、「Exited」のコンテナのみを一括で削除できます。

docker rm $(docker ps -a -q --filter status=exited)

docker rmi

イメージを削除する

docker rmi [リポジトリ]:[タグ]
docker rmi -f [リポジトリ]:[タグ]  #=> 「-f, --force」を付けると、コンテナが存在するイメージも削除できます。

イメージを一括で削除する

「docker images」コマンドですべてのイメージのIDを取得し、イメージを一括で削除できます。

docker rmi $(docker images -q)

「none」のイメージを一括で削除する

「docker images」コマンドのフィルターオプションを使い、「none」のイメージのみを一括で削除できます。

docker rmi $(docker images -q --filter "dangling=true")

docker run

コンテナを作成し、起動する

「docker run」はイメージの取得・コンテナを作成・コンテナを起動します。そのため、「docker pull」→「docker create」→「docker start」を順番に実行したときと同じ動作です。

オプション無しの場合は、疑似TTYの割り当てや標準入力ができないため、基本的に以下オプションを使います。

  • -i, --interactive・・・コンテナのSTDINにアタッチする
  • -t, --tty・・・疑似ターミナルを割り当てる
docker run -i -t [リポジトリ]:[タグ] [コマンド]

コンテナ名・ホスト名を決め、コンテナを起動する

コンテナ名を任意で付けたい場合は、「--name」オプションを使い、コンテナのホスト名を付けたい場合は、「-h または --hostname」オプションを使います。

docker run --name [コンテナ名] -h [ホスト名] -i -t [リポジトリ]:[タグ] [コマンド]

バックグラウンドでコンテナを起動する

「-d, --detach」オプションで、コンテナをバックグラウンドで起動することができます。

docker run -i -t -d [リポジトリ]:[タグ] [コマンド]

CPU・メモリのリソースを制限する

CPUは「--cpuset-cpus」オプションで、コンテナで使えるCPUの割り当てを制限できます。CPUを複数割り当てる場合は、「0-1」や「0,1」と書きます。

メモリは「-m, --memory」オプションで、メモリの容量を制限できます。メモリ容量は「1024MB」や「1GB」と書きます。

なお、デフォルトではCPU・メモリともにリソースの制限はありません。

docker run -i -t --cpuset-cpus [CPU数] [リポジトリ]:[タグ] [コマンド]
docker run -i -t -m [メモリ容量] [リポジトリ]:[タグ] [コマンド]

ホストのパスをコンテナにマウントする

「-v, --volume」オプションで、マウントするホストのパスとコンテナのパスを指定し、ホストとコンテナ間の共有フォルダを作れます。

docker run -i -t -v [ホストパス]:[コンテナパス] [リポジトリ]:[タグ] [コマンド]

docker start

コンテナを起動する

docker start [コンテナID または コンテナ名]

コンテナ起動時にログインする

「-a, --attach」オプションで、コンテナ起動時にログインできます。標準入力が必要な場合は「-i, --interactive」も合わせて付けます。なお、コンテナ作成時に疑似ターミナルの割り当てと標準入力をできるようにしておく必要があります。

docker start -a -i [コンテナID または コンテナ名]

docker stop

コンテナを停止する

docker stop [コンテナID または コンテナ名]

コンテナを一括で停止する

「docker ps」コマンドでイメージIDのみを取得し、コンテナを一括で停止できます。

docker stop $(docker ps -q)

Docker CLI

スポンサーリンク

feedly、RSSをフォローする