ブログ

podman コンテナをコンフィグファイルを使用して起動する方法

at_shiita.ishigaki
2022年6月24日 10時55分

/etc/atmark/containers/*.conf を用意することで、podman コンテナの自動起動等、起動時のオプションを設定することができます。
.conf ファイルの書き方については、Armadillo-IoT G4 のマニュアルを参考にしてください。
podman_start コマンドを使用することで .conf ファイルに記載されている podman コンテナを起動することができます。
podman_start コマンドの使用方法を以下に示します。

[armadillo ~]# podman_start -h
Usage: /usr/bin/podman_start [-a|container [container...]]

Helper to start configured container, pod or network

  -a        Start all configured containers/pods/networks
  -i        Do not replace any existing container/pod/network
            note this means some options will not be reapplied
  -c <dir>  Alternate configuration directory
  -v        Verbose
  -n        Dry run
  --remote  use podman --remote

podman_start コマンドを実行するために、.conf ファイルを二つ用意します。

[armadillo ~]# cat > /etc/atmark/containers/alpine.conf << EOF
set_image docker.io/alpine
set_pull missing
set_autostart yes
set command /bin/sh
EOF

[armadillo ~]# cat > /etc/atmark/containers/busybox.conf << EOF
set_image docker.io/busybox
set_pull missing
set_autostart no
set command /bin/sh
EOF

podman_start コマンドを使用して、先ほど作成した .conf ファイルの podman コンテナを作成します。
podman_start の引数には .conf ファイルの .conf を除いたファイル名を指定します。

[armadillo ~]# podman_start alpine busybox
Starting 'alpine'
Trying to pull docker.io/library/alpine:latest...
Getting image source signatures
…
…
Writing manifest to image destination
Storing signatures
774cadfc110c0707a39bc7f372e936bec55a043b6809c1e9328531225363dd8c
Starting 'busybox'
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
…
…
Writing manifest to image destination
Storing signatures
d5e0674f386f59695b69060c8b2e8e5f058ac5b06fd8d501cb74f21b996426b4

podman コンテナが作成されていることを確認します。

[armadillo ~]# podman ps -a
CONTAINER ID  IMAGE                             COMMAND     CREATED             STATUS                         PORTS       NAMES
774cadfc110c  docker.io/library/alpine:latest   /bin/sh     About a minute ago  Exited (0) About a minute ago              alpine
d5e0674f386f  docker.io/library/busybox:latest  sh          About a minute ago  Exited (0) About a minute ago              busybox

.conf ファイルで set_autostart が yes となってる場合は、podman_start -a コマンドで起動することができます。

[armadillo ~]# podman_start -a
Starting 'alpine'
774cadfc110c0707a39bc7f372e936bec55a043b6809c1e9328531225363dd8c
8bf47841e7f417b7af6ecd16b72b7af7894f27d6d3664602e8c34f99c9450788