Skip to content

Docker

全コンテナを停止・削除する「docker purge」アップデート (v0.0.2)

以前に 全コンテナを停止・削除する docker サブコマンド「docker purge」 というメモを書きました。 考慮していなかっただけなのですが、このサブコマンドは以下の動作をしていました。

  • 起動中のコンテナは停止・削除する
  • 停止中のコンテナは何もしない (削除しない)

自分自身の利用方法ではこれが不便に感じた為、「停止中のコンテナも削除する」ように動作変更しました。 アップデート後のバイナリは下記からダウンロード出来ます。

全ての Docker コンテナを停止・削除する Python スクリプト

以前に 全コンテナを停止・削除する docker サブコマンド「docker purge」 というメモを書きました。 このメモでは Docker のプラグインとして golang で purge というコマンドを作成しました。 Python から Docker を扱うのも簡単なので、今回は Python で同じ目的のスクリプトを書いてみました。

docker build のキャッシュを削除する

docker build 時のキャッシュの削除方法をメモしておきます。 結論としては docker builder prune --force を実行することでキャッシュを削除出来ます。 現状のキャッシュ容量は docker system df で確認出来ます。 下記の場合、約 4GB のキャッシュが存在しています。

golang で docker サブコマンドを実装する

docker-compose 当初 Python で書かれていましたが、v2 からは golang で書き直され、使い方も (v1 の docker-compose では無く) docker compose 〜 といった具合に利用するように変更されました。 docker コマンドのサブコマンドとして動作しているように見えますが、これは cobra を使って実装されているようです。 以下は cobra の公式ページからの引用です。

Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.

docker サブコマンドとしての実装例は下記が参考になります。

  • https://github.com/docker/cli/blob/master/cli-plugins/examples/helloworld/main.go
  • https://github.com/docker/compose/blob/v2/cmd/main.go

上記を参考に、更にダイエットして「最小の docker サブコマンド」をメモしておきます。