💻Docker と運用
Docker で Web アプリを使い始めるということ
- 新しくなにかを導入するときにコマンドがー
- アップデートがー
- 遊んだ後の掃除がー
といった諸問題が発生する。めんどうくせえ。自前ホストと OS の時は要らないけど、 QNAP だとイメージを docker rm しろみたいな記事を見たり、やりたいことと直結していない。むしろやる必要がないか、やってはいけないし。
この、やりたいことと用意されている文書とが直結していない問題はどこかでまとめておきたい問題ではあるので、あとで書く。
で、ちょうど vaultwarden と iOS 用 bitwarden の更新があり、 bitwarden が .NET から swift に移行したそうで使えなくなりw。結果、サーバー側入れ替えでクライアント側も動いた。一応は保管庫をエクスポートしてから更新をかけた。だいじ。
という感じの工程で、現時点の調査情報をメモする。
Portainer の導入
まさに欲しかった Docker 管理ツール。ポート+メンテナー=ポーテナー、とでも発音するべきかな。
オール英語だから慎重に翻訳しながら使うのが手間だが仕方ない。日本語になにもかも翻訳されていた時代が懐かしい。これも「探せないが確実にある情報」として、やりたいことと文書のミッシングリンクだよなあ。
# 最初はしゃあないから CLI でたちあげます
sudo docker run \
--detach \
--publish 9000:9000 \
--publish 8000:8000 \
--name portainer \
--restart always \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume portainer_data:/data \
portainer/portainer-ce
# うちのラズパイはヘッドレスなので、メイン機からブラウザアクセスする用に穴をあけます
# http://ラズパイのローカルアドレス:9000/ にアクセスしたら使い始められる
sudo ufw allow 9000/tcp
コンテナのアップデート
-
サイドバーの Home を選ぶとメインエリアにローカルな docker デーモン?を表示するのでこれも選ぶ。サイドバーから直接コンテナにもいけますけど階層構造はこういう感じですってことね。
-
そうするとダッシュボードが表示され、スタック、コンテナ、イメージ、ボリューム、ネットワークが現れるので、そこからコンテナを選ぶ。
-
コンテナ名(リンクになっている)を選ぶとアクション選択肢があるので、その中から Recreate を選ぶ。
stateDiagram-v2 direction TB state "Container" as B { fxB:Page & Name Functions fxB:Start fxB:Stop fxB:Kill fxB:Restart fxB:Pause fxB:Resume fxB:Remove fxBd:Page Functions fxBd:Add lkB:Page Link lkB:Name lkB:Quick Actions lkB:Image lkB:Published Port } state "Name" as C { fxC:Page Functions fxC:Recreate fxC:Duplicate/Edit } B --> C
-
これで対象のコンテナに使われているイメージがプルされ、再起動も行われる。まあ、ものによっては永続化が切れることもあるだろうから、そこらへんはケースバイケースで対応してもらいたい。