5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

よく使うDockerコマンドまとめ

Last updated at Posted at 2018-03-29

よく使うもの

history | grep dockerとかでよく使ってるコマンドを調べた結果です。

よく使うコマンド

コマンド 説明
run コンテナの作成 + 開始 ( create + start)
exec 起動中のコンテナで実行
stop 止める(SIGTERMを送る)
kill キルする(SIGKILLを送る)
ps 起動中のコンテナを見る。-aで終了も。
rm コンテナ削除。容量減ってきたら。
rmi イメージ削除。容量削減に効果的。

よく使うオプション

オプション 説明
-i, --interactive インタラクティブモード
-t, --tty 仮想TTYを割り当てて起動。
-d デタッチ状態。--daemonに似てる。
--privileged CentOSとかで特権使う際に。

よく使う使い方

全部のDockerコンテナを終了させる。(SIGTERMを送る)

$ docker stop $(docker ps -aq)

こっちはキルする。(SIGKILLを送る)

$ docker kill $(docker ps -aq)

ちょっとだけコンテナを使いたい時

例: CentOS7のコンテナを起動する。
(CentOSでちょっとしたコマンドとかの確認をしたい時。)

$ docker run -i -t centos:centos7
[root@bf2a3ae69d2e /]#

例: Rubyの要件がきついwpscanを起動する。

$ docker run -it wpscanteam/wpscan --random-agent -u 'https://example.com'

コンテナを起動しっぱなしにしておきたい時

コンテナに自分で名前を付けて(my_centos7)、そのコンテナで都度都度bashを起動する

$ docker run --name my_centos7 -itd centos:centos7
9305cc126248aa667f55888798ce362a1d4461542c18596826444db8220dcb48

$ docker exec -it my_centos7 /bin/bash
[root@9305cc126248 /]#

使っていないイメージを削除

Docker関連で容量が圧迫されるのでクリーンアップに。

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

(2025年追記)
Dockerイメージの削除について、削除前にどのイメージが削除されるかを確認するコマンドです。

echo -e "REPOSITORY\tTAG\tSIZE\tCONTAINERS"

# イメージ一覧を取得 → 各イメージIDごとにコンテナ数をカウント → サイズ順ソート
docker images --format "{{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}" \
  | while IFS=$'\t' read -r id repo tag size; do
      cnt=$(docker ps -a --filter "ancestor=$id" --format '{{.ID}}' | wc -l)
      echo -e "$repo\t$tag\t$size\t$cnt"
    done \
  | sort -k3 -h \
  | column -t

image.png

こうすると「イメージ名」「容量」「イメージを利用しているコンテナ数」がわかります。
基本的にイメージを利用しているコンテナ数が0のものが削除対象になります。その一方で、「このコンテナは容量がでかいけど消していいだろうか…。でもたくさんのコンテナが使っているから消しづらそうだな」とかそういう判断ができるかと思います。

Docker Compose関連

Docker Compose のプロジェクト一覧

Docker Desktopを使っているとDocker Composeで起動したプロジェクト一覧を出すことができます。

image.png

これは docker-compose.yml がどこに行ったかわからないときでも出てくるので便利!
でもDesktopのStopボタンはうまく動作しない(停止できない)ので、個別に停止する必要があったりします。

またCLIしかない環境でも同様のことをやりたいなと思ってChatGPTに聞くと下記のようにすればできるとのこと。

# ① プロジェクト名一覧を取得
docker ps -a \
  --filter label=com.docker.compose.project \
  --format '{{.Label "com.docker.compose.project"}}' \
  | sort -u

image.png

便利!

それぞれ停止と削除。

# ② 停止・削除したいプロジェクト名を変数にセット
PROJECT=project_16_skb

# ③ 停止
docker ps -q \
  --filter label=com.docker.compose.project=$PROJECT \
  | xargs -r docker stop
# ④ 削除
docker ps -aq \
  --filter label=com.docker.compose.project=$PROJECT \
  | xargs -r docker rm

なお

Docker Desktop の “Compose 単位” は、実はコンテナに付与されているラベル com.docker.compose.project で管理されています。CLI だけで同じようにグループ化・操作するには、次の2つの方法があります。

とのこと。

終了中のコンテナ削除

終了中のコンテナなので再起動させたい場合には注意が必要。

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

使わないコマンド

コマンド 説明
create 作成(runがあるので使わない)
start 起動(runがあるので使わない)
attach アタッチ(使わない)
pull イメージを拾ってくる(runの時に自動的に拾うので使わない)
images イメージ一覧。外出中にテザリング環境で。
push イメージを自作するなら使う
build イメージを自作するときに使う
tag イメージを自作するなときに使う

リファレンス

公式: https://docs.docker.com/engine/reference/commandline/kill/#options
日本語公式: http://docs.docker.jp/engine/reference/run.html
削除周り: https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?