Armadilloフォーラム

armadilloの電源を落とす際にpodmanでコンテナを編集した内容を保持、又は焼く手段について

yuki.shigefuji

2023年2月9日 11時58分

お世話になっております。

armadilloの電源を落とした際にコンテナで編集した内容、podman_startのためのオプション設定などがうまく保持できず難航しております。

podman exec -it でコンテナの中で編集した内容をarmadillo本体の電源を落としても保持するためにはどうするべきなのでしょうか。
abos-ctrl podman-storage --disk で保存されるとのことですが、どのように実行すればよろしいのかご教授願いたく思います。

よろしくお願いいたします。

コメント

at_dominique.m…

2023年2月9日 12時43分

yuki.shigefujiさん、

お世話になっています、
アットマークテクノのマルティネです。

> armadilloの電源を落とした際にコンテナで編集した内容、podman_startのためのオプション設定などがうまく保持できず難航しております。
>
> podman exec -it でコンテナの中で編集した内容をarmadillo本体の電源を落としても保持するためにはどうするべきなのでしょうか。
> abos-ctrl podman-storage --disk で保存されるとのことですが、どのように実行すればよろしいのかご教授願いたく思います。

質問を答える前に、コンテナとファイルの保存について説明したいと思います。
コンテナは基本的に作られた状態から変更しないで、保存したいデータ(データベースやログ等)をボリュームで保存します。
ボリュームはコンテナイメージと関係ないディレクトリをコンテナに共有することです。
ボリュームを使うことで、コンテナ(アプリケーション)とデータを別けて、アプリケーションを更新しやすくなります。
コンテナは層で作られているので、データを保存しながら更新しつづけたらすごく大きくなりますので、扱いしにくくなります。

podman_start の場合、 /etc/atmark/containers のコンフィグファイルに add_volumes でボリュームを追加できます。
例えば、 add_volumes data:/data は "data" というボリュームをコンテナの中の /data ディレクトリにマウントさせます。
ボリュームのソースは常に disk になっていますので、電源が切られてもなくなりません。詳しい説明は製品マニュアルをご参照ください: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

質問に戻ります。
podman の保存先を disk に設定しても、コンテナのファイルシステムはイメージと別の overlay に保存されていますので、普通の使い方では再起動の際に失われます。
podman_start は運用におすすめしている tmpfs モードの前提で動いて、コンテナを毎回新しく作りますので、前の起動の overlay がそのタイミングで消されます。
どうしても必要でしたら、/etc/atmark/containers/ のコンフィグファイルに set_autostart no を設定して、podman_start ではなく podman start <name> でコンテナを復帰させれば、古い overlay のままに起動されると思いますが、ボリュームを使った方が安全に扱えると思います。

また何か不明な点があれば聞いてください。

よろしくお願いします。