ssig33.com

Docker を個人が使う時の注意点

Docker が何かとかそういう話は全部抜きにして書きます。

Docker においてよくある運用は

  1. どっかにプライベートなレジストリを立てる
  2. ローカルかなんかでビルドしたコンテナをそこにプッシュする
  3. 実際の実行環境ではそれを pull してきて起動

という感じではないかと思います。 3. の後にリバースプロキシだのなんだのいろいろ設定しないといけませんから、それは各種自動化フレームワークが用いられます。

ここまではいいのですが、問題は 2 です。

Docker は 2 をやるごとにほぼフルの Linux 環境をネットワーク経由でアップロードするということになります。これが案外バカにならなくて、測定してみたところこの二週間でこれでのアップロードの合計は 350GB ほどになっていました。

もうちょっと激しくなるとプロバイダの設定する帯域規制だったり強制解約要件にひっかかってしまいますし、単純に自宅の帯域を圧迫して他の通信を阻害しかねません。

この問題の解決策は

  1. イメージ本体ではなく Dockerfile をやり取りする
    • registry がいらなくなるという利点がありますが実行環境において実行する毎にビルドが発生するので CPU と実行時間の無駄遣いになります
    • ただ Dockerfile をいくつかの段階に分割するとかして無駄遣いを極力抑えることはできますし、そういう運用も強力ではあります。
  2. ビルドと registry へのプッシュ専用にさくらの VPS を一個借りてそこでやる

というのが個人レベルでは考えられます。僕は最近は 2 を選択しました。ローカルで毎日 CPU をぶんまわしまくってノートが発熱するという問題も無くなって快適。

back to index of texts


Site Search

Update History of this content