progrhyme's tech blog

主にIT関連の技術メモ

DockerizeしたCLIを使うことについて

昨今、Dockerを使って開発することが当たり前になっている、という人も増えているのではないか。

その場合、開発に必要なツールがDockerに対応していると楽だ。

それはサーバ製品に限らない。
人によっては、 mysql コマンドやAWS CLIといったクライアントツールもDockerizeされたコンテナイメージを利用しているということもあるだろう。

…で、それは多少のトレードオフはあるものの、概ね便利と云って良さそうだ。

Pros

  • インストールが楽。docker runしたらイメージが落ちて来るので、インストールのために何かする意識がほぼ必要ない。
  • ツールの依存物がコンテナに閉じるので、ローカル環境を汚さないで済む。
  • 環境差異にまつわるトラブルを減らせる。「オレの環境では動くのに」問題を減らせる。

Cons

  • Dockerに関するトラブルがあったときに、仕組みをわかってないとシューティングが難しそう。
  • CLIの起動にオーバーヘッドがかかり、フットプリントが大きくなる(と思う)。気にならないレベルなら良いのでは。
  • ストレージを消費しやすい。

1つ目については、CLIにちゃんと適切な環境変数なりを渡してあげないといけないとか、作業ディレクトリを用意しないといけないとか、そういう注意点はありそう。

2つ目、3つ目については、Alpine LinuxなどミニマルなOSをベースイメージとすることで、ある程度抑えられる。

最近、自分でも勉強がてらAWS CLI*1やAnsible*2をDockerizeしてみたけど、まだちゃんと使ってみてないので、特に上の1つ目の点にはハマりそうだなと思っている。

参考