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 のままに起動されると思いますが、ボリュームを使った方が安全に扱えると思います。また何か不明な点があれば聞いてください。
よろしくお願いします。