naka16
2025年4月11日 14時28分
==========
製品型番:AGX4520-C03D0
==========
お世話になっております。
Raspberry Pi で動作しておりますアプリ(コンテナ)を御社の Armadillo-IoT G4上で動作させたいと
考えております。
初歩的な質問となりまして恐縮ですが、手順等ご教授いただきたく、よろしくお願いします。
ドキュメントの参照箇所等のご提示でも構いませんので、お手数をおかけしますが、
よろしくお願いします。
コメント
naka16
> アットマークテクノの古賀です。
>
> naka16さん:
> >==========
> >製品型番:AGX4520-C03D0
> >==========
> …
> >Raspberry Pi で動作しておりますアプリ(コンテナ)を御社の Armadillo-IoT G4上で動作させたいと
> >考えております。
>
> お使いの Raspberry Pi の型番は、何でしょうか?
> おそらく aarch64 (ARM 64bit) の CPU コアの機種かとは思いますが、ご確認くださいませ。
>
> >初歩的な質問となりまして恐縮ですが、手順等ご教授いただきたく、よろしくお願いします。
> >
> >ドキュメントの参照箇所等のご提示でも構いませんので、お手数をおかけしますが、
> >よろしくお願いします。
>
> 互換性のある CPU コアのボード間でコンテナを持ち運ぶ場合、次の手順となります:
>
> (1) 持ち運び元(今回の場合は Raspberry Pi)で、コンテナエンジン(Docker)の export コマンドか save コマンドを使い、コンテナイメージを tar アーカイブとして保存する。
>
> (2) 持ち運び先(今回の場合は Armadillo-IoT G4)で、コンテナエンジン(podman)の import コマンドか load コマンドを使い、コンテナイメージを読み込む。
>
> (3) 読み込んだコンテナイメージからコンテナを生成・起動する。
>
> なお、持ち運ぶアプリケーションが、Raspberry Pi 固有のハードウェア(つまり、Raspberry 固有のデバイスドライバ)を使用している場合は、持ち運び先の Armadillo-IoT G4 では動作しません。エラーになってしまいます。
> また、互換性のあるハードウェア(つまり、同じ名前のデバイスドライバ)を使用している場合であっても、上記 (3) でコンテナを作成する際に、デバイスドライバの使用許可をコンテナに与える設定が必要です。
>
> (1) と (2) の、コンテナイメージ持ち運び用のコマンドについては、それぞれ以下をご覧ください:
>
> ・docker export
> https://docs.docker.jp/engine/reference/commandline/export.html
> ・docker save
> https://docs.docker.jp/engine/reference/commandline/save.html
>
> ・podman import
> https://docs.podman.io/en/stable/markdown/podman-import.1.html
> ・podman load
> https://docs.podman.io/en/stable/markdown/podman-load.1.html
>
> docker export でコンテナイメージを書き出した場合は podman import で読み込み、docker save でコンテナイメージを保存した場合は podman load で読み込んでください。
>
> 以上、ひとまずコメントです。不明な点などありましたら、お知らせください。
ご教授いただきましてありがとうございます。
> お使いの Raspberry Pi の型番は、何でしょうか?
Raspberry Pi 4 となります。
手順 (1) , (2) につきましては、無事に実行できましたが、(3) で以下のようなエラーが発生しております。
podman run --name blesensor switchbot:latest
Error: crun: open executable: Operation not permitted: OCI permission denied
対処法が分からず、お手数をおかけしまして申し訳ありませんが、ご教授のほど、よろしくお願いいたします。
at_shinya.koga
アットマークテクノの古賀です。
naka16さん:
>>互換性のある CPU コアのボード間でコンテナを持ち運ぶ場合、次の手順となります:
>>
>>(1) 持ち運び元(今回の場合は Raspberry Pi)で、コンテナエンジン(Docker)の export コマンドか save コマンドを使い、コンテナイメージを tar アーカイブとして保存する。
>>
>>(2) 持ち運び先(今回の場合は Armadillo-IoT G4)で、コンテナエンジン(podman)の import コマンドか load コマンドを使い、コンテナイメージを読み込む。
>>
>>(3) 読み込んだコンテナイメージからコンテナを生成・起動する。
>>
>>なお、持ち運ぶアプリケーションが、Raspberry Pi 固有のハードウェア(つまり、Raspberry 固有のデバイスドライバ)を使用している場合は、持ち運び先の Armadillo-IoT G4 では動作しません。エラーになってしまいます。
>>また、互換性のあるハードウェア(つまり、同じ名前のデバイスドライバ)を使用している場合であっても、上記 (3) でコンテナを作成する際に、デバイスドライバの使用許可をコンテナに与える設定が必要です。
…
>ご教授いただきましてありがとうございます。
>
>>お使いの Raspberry Pi の型番は、何でしょうか?
>
>Raspberry Pi 4 となります。
了解しました。
追加で確認ですが、Raspberry Pi OS は 64bit 版をお使いでしょうか?
>手順 (1) , (2) につきましては、無事に実行できましたが、(3) で以下のようなエラーが発生しております。
>
>podman run --name blesensor switchbot:latest
>Error: crun: open executable: Operation not permitted: OCI permission denied
>
>対処法が分からず、お手数をおかけしまして申し訳ありませんが、ご教授のほど、よろしくお願いいたします。
コンテナ起動時に実行するプログラムを実行できないかまたは、実行するプログラムが指定されていない状況だと思われます。
お使いのコンテナアプリケーションですが、コンテナ起動時に実行するプログラムは何でしょうか?
お使いのコンテナアプリケーションのコンテナイメージを Dockerfile から生成していらした場合は、Dockerfile の CMD または ENTRYPOINT で指定していらしたコマンドを教えてくださいませ。
Dcokerfile が手元にない場合は、Raspberry Pi で docker inspect コマンドを使って調べてみてくださいませ:
docker inspect -f "{{ .Config.Cmd }}" [コンテナイメージ名] docker inspect -f "{{ .Config.Entrypoint }}" [コンテナイメージ名]
おそらく、docker export と podman import をお使いになったのだと思います。
docker save と podman load を使えば、コンテナイメージのメタデータも持ち運べますので、そちらをお使いになる方が手っ取り早いかも知れません。
at_shinya.koga
2025年4月14日 7時14分
アットマークテクノの古賀です。
naka16さん:
>==========
>製品型番:AGX4520-C03D0
>==========
…
>Raspberry Pi で動作しておりますアプリ(コンテナ)を御社の Armadillo-IoT G4上で動作させたいと
>考えております。
お使いの Raspberry Pi の型番は、何でしょうか?
おそらく aarch64 (ARM 64bit) の CPU コアの機種かとは思いますが、ご確認くださいませ。
>初歩的な質問となりまして恐縮ですが、手順等ご教授いただきたく、よろしくお願いします。
>
>ドキュメントの参照箇所等のご提示でも構いませんので、お手数をおかけしますが、
>よろしくお願いします。
互換性のある CPU コアのボード間でコンテナを持ち運ぶ場合、次の手順となります:
(1) 持ち運び元(今回の場合は Raspberry Pi)で、コンテナエンジン(Docker)の export コマンドか save コマンドを使い、コンテナイメージを tar アーカイブとして保存する。
(2) 持ち運び先(今回の場合は Armadillo-IoT G4)で、コンテナエンジン(podman)の import コマンドか load コマンドを使い、コンテナイメージを読み込む。
(3) 読み込んだコンテナイメージからコンテナを生成・起動する。
なお、持ち運ぶアプリケーションが、Raspberry Pi 固有のハードウェア(つまり、Raspberry 固有のデバイスドライバ)を使用している場合は、持ち運び先の Armadillo-IoT G4 では動作しません。エラーになってしまいます。
また、互換性のあるハードウェア(つまり、同じ名前のデバイスドライバ)を使用している場合であっても、上記 (3) でコンテナを作成する際に、デバイスドライバの使用許可をコンテナに与える設定が必要です。
(1) と (2) の、コンテナイメージ持ち運び用のコマンドについては、それぞれ以下をご覧ください:
・docker export
https://docs.docker.jp/engine/reference/commandline/export.html
・docker save
https://docs.docker.jp/engine/reference/commandline/save.html
・podman import
https://docs.podman.io/en/stable/markdown/podman-import.1.html
・podman load
https://docs.podman.io/en/stable/markdown/podman-load.1.html
docker export でコンテナイメージを書き出した場合は podman import で読み込み、docker save でコンテナイメージを保存した場合は podman load で読み込んでください。
以上、ひとまずコメントです。不明な点などありましたら、お知らせください。