Red Hat Training

A Red Hat training course is available for RHEL 8

14.2. ルートレスモードで systemd を使用した Podman API の有効化

この手順では、systemd を使用して Podman API ソケットおよび Podman API サービスをアクティベートする方法を説明します。

前提条件

  • podman-remote パッケージがインストールされている。

    # yum install podman-remote

手順

  1. Podman のルートレスソケットを作成します。

    $ vim ~/.config/systemd/user/podman.socket
    
    [Unit]
    Description=Podman API Socket
    Documentation=man:podman-api(1)
    
    [Socket]
    ListenStream=%t/podman/podman.sock
    SocketMode=0660
    
    [Install]
    WantedBy=sockets.target
  2. Podman のルートレスサービスを作成します。

    $ vim ~/.config/systemd/user/podman.service
    [Unit]
    Description=Podman API Service
    Requires=podman.socket
    After=podman.socket
    Documentation=man:podman-api(1)
    StartLimitIntervalSec=0
    
    [Service]
    Type=oneshot
    Environment=REGISTRIES_CONFIG_PATH=/etc/containers/registries.conf
    ExecStart=/usr/bin/podman system service unix:///%t/podman.sock
    TimeoutStopSec=30
    KillMode=process
    
    [Install]
    WantedBy=multi-user.target
    Also=podman.socket
    • [Unit] セクションの After 行では、podman.socket ユニットファイルの依存関係を定義します。podman.socket ユニットは、設定済みの podman.service の前に起動します。
  3. systemd マネージャー設定を再読み込みします。

    $ systemctl --user daemon-reload
  4. サービスをすぐに有効にして起動します。

    $ systemctl --user enable --now podman.socket
  5. Docker を使用してプログラムがルートレス Podman ソケットを操作できるようにするには、以下を実行します。

    $ export DOCKER_HOST=unix:///var/run/<username>/podman.sock

検証手順

  • Podman のシステム情報を表示します。

    $ podman-remote info

関連情報