よく忘れちゃうのでメモとして。
前回 「ターミナルで良く使っているコマンドについて調べてみた」で、よく使っているコマンドの順位付けをおこなったので、そのワンライナーを基にDockerのサブコマンド使用頻度の順位を調べてみました。
history | grep docker | sed -E 's/^[ ]*//g' | sed -E 's/ +/ /g' | cut -d' ' -f2 -f3 -f4 | sort | uniq -c | sort -nr | head -n 10 | nl -w 2
結果はこうです。
順位 | コマンド |
---|---|
1 | docker run -it |
2 | docker exec -it |
3 | docker images |
4 | docker-compose -f docker-compose.dev.yml |
5 | docker build –rm |
6 | docker build -t |
7 | docker-compose run chat |
8 | docker-compose run –rm |
9 | docker ps -a |
docker run
が一位ですね。
コンテナを作って動かす、docker create
+ docker exec
です。
使い方はこんな感じです。
$ docker run -it yousan/dnsmasq:1.6-local /bin/sh
/bin/bash
のところは、イメージによっては /bin/sh
じゃないと通らないかもです。
動かしているコンテナで新たにコマンドを実行する、ですね。
2位は docker exec
でした。
起動中コンテナに対してコマンドを実行してもらう、です。
$ docker exec -it php.test /bin/bash
3位はdocker images
です。
手元に持っているイメージ一覧を取得です。
$ docker images
不要な(参照されていない)イメージを取得するには --filter "dangling=true"
を使うといいです。
$ docker images --filter "dangling=true"
不要なイメージ削除rmi
と組み合わせてこんな感じですね。
$ docker rmi $(docker images --filter "dangling=true" -q)
ビルド後とかに「ちゃんとビルドできてるかなぁ…」とか、「ここ数日でビルドしたイメージってなんて名前だっけ」という場合に使えます。
デフォルトだと横がはみ出しちゃったりして二行になるので、出力フォーマットを自分で変えると良い感じになります。
$ docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | head
4位、5位に別れちゃったんですが、docker build
です
引数は-t
でタグ名、最後の引数でDockerfileがあるディレクトリを入れます。
$ docker build -t yousan/php:1.6.1-php7.2-fpm-alpine .
イメージを削除しながらビルドし直す場合には--rm
オプションを付けると良いです。
$ docker build --rm ./ -t yousan/nginx-unit
こんな感じでした。