よく忘れちゃうのでメモとして。
前回 「ターミナルで良く使っているコマンドについて調べてみた」で、よく使っているコマンドの順位付けをおこなったので、そのワンライナーを基に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
こんな感じでした。


