概要
M1MacのPodmanでDb2コンテナが動くか確認してみました。
Db2コンテナイメージは、arm64版がありません。(2022/6/16時点)
Podmanがエミュレートして、amd64(x64)版を正常に動かしてくれるのか気になるところです。
結果
2022/6/16時点では、動きませんでした。
- amd64版イメージの取得のために、--platform linux/amd64を指定するも、エミュレートできていないのか、コンテナ作成エラー。
- さらに、Podman Machineに「qemu-user-static」を導入してやってみると、コンテナ作成を成功するけど、DBのセットアップ処理でエラー。
- IBM DataManagement Community の投稿をみると、colimaで成功したとのメッセージがありましたが、私は確認していません。
2022/8/6 追記
データベースディレクトリを永続化できないという厄介すぎる制限付きですが、colimaを使ってDb2コンテナを稼働させることができました。
M1 MaCでcolimaを使ってDb2コンテナの稼働に厄介な制限付きで成功
最後に
- M1MacのPodmanでDb2を稼働できた方いればぜひ教えてください。
参考
DockerHub > ibmcom/db2
IBM Data Management Community > DB2 LUW. 11.5.xx - Mac M1 ready
GitHub > qemu-user-static
[Running amd64 docker images with Podman on Apple Silicon (M1)](URL "https://edofic.com/posts/2021-09-12-podman-m1-amd64/)
詳細
Db2コンテナイメージをlinux/amd64指定で取得 -> コンテナ作成エラー
- --platform linux/amd64を指定しても、コンテナ作成自体失敗。
% podman run -itd --name mydb2 --platform linux/amd64 --privileged=true -p 50001:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=password -e DBNAME=testdb -v /hogehoge:/database docker.io/ibmcom/db2
4d829e7cf29cfed162b1cde8ed544c28183efa39a7ca1581c6652b225a72adb7
% podman logs -f mydb2
{"msg":"exec container process `/var/db2_setup/lib/setup_db2_instance.sh`: Exec format error","level":"error","time":"2022-06-14T10:31:29.000747820Z"}
PodmanMachineにqemu-user-staticを導入してコンテナ起動 -> DB作成できない
PodmanMachineにqemu-user-staticの導入
$ podman machine ssh
$ sudo -i
# rpm-ostree install qemu-user-static
# systemctl reboot
Db2コンテナ起動
- コンテナは起動するけど、セットアップ処理で、db2のコマンドが、command not foundでエラー。インスタンスまではできているけど、DBができない。
% podman run -itd --name mydb2-2 --platform linux/amd64 --privileged=true -p 50002:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=password -e DBNAME=testdb -v /hogehoge-2:/database docker.io/ibmcom/db2
$ podman logs -f mydb2-2
For more information see the DB2 installation log at "/tmp/db2icrt.log.196".
DBI1070I Program db2icrt completed successfully.
/bin/bash: db2stop: command not found
(*) Cataloging existing databases
/usr/bin/ls: cannot access /database/data/db2inst1/NODE0000: No such file or directory
(*) Applying Db2 license ...