ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で使用できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle LinuxでのPodmanでのユーザー・リンガリングの構成
イントロダクション
Systemdはユーザー・リンガリングを提供し、ユーザー・サービス(systemdユーザー・ユニットで起動されたコンテナなど)は、ユーザーのログアウト後にアクティブのままになります。これがないと、ユーザー・サービス・マネージャ(およびそのコンテナ)はログアウト時に停止します。
目的
このチュートリアルでは、次のことを学習します。
- Podmanを使用して、ポッドを作成および実行します。
- Podmanを使用してポッドを管理します。
- Podmanを使用してポッドを削除します。
前提条件
-
単一のOracle Linuxシステムの最少数
-
各システムには、次を使用してOracle Linuxがインストールおよび構成されている必要があります。
- sudoアクセス権を持つroot以外のユーザー・アカウント
- インターネットへのアクセス
Oracle Linuxのデプロイ
ノート:独自のテナンシで実行している場合は、演習環境をデプロイする前に、linux-virt-labs GitHubプロジェクトREADME.mdを読み、前提条件を完了してください。
-
Lunaデスクトップでターミナルを開きます。
-
linux-virt-labsGitHubプロジェクトをクローニングします。git clone https://github.com/oracle-devrel/linux-virt-labs.git -
作業ディレクトリに変更する。
cd linux-virt-labs/ol -
必要なコレクションをインストールします。
ansible-galaxy collection install -r requirements.yml -
演習環境をデプロイします。
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e use_podman=true -e update_all=true -e os_version="9"無料の演習環境には、ローカル・ホストで実行される再生の
ansible_python_interpreterを設定する追加の変数local_python_interpreterが必要です。この変数は、python3.6モジュールの下にあるOracle Cloud Infrastructure SDK for PythonのRPMパッケージが環境によってインストールされるため必要です。デフォルトのデプロイメント・シェイプでは、AMD CPUおよびOracle Linux 8が使用されます。Intel CPUまたはOracle Linux 9を使用するには、デプロイメント・コマンドに
-e instance_shape="VM.Standard3.Flex"または-e os_version="9"を追加します。重要:プレイブックが正常に実行されるまで待機し、一時停止タスクに到達します。プレイブックのこの段階では、Oracle Linuxのインストールが完了し、インスタンスの準備ができました。前回の再生をノートにとります。この再生では、デプロイするノードのパブリックIPアドレスとプライベートIPアドレス、および演習の実行中に必要なその他のデプロイメント情報が出力されます。
Podmanの動作を確認する
Oracle Linuxのcontainer-toolsパッケージは、Podman、Buildah、Skopeoおよび関連する依存関係の最新バージョンを提供します。
-
端末を開き、SSH経由でol-node-01インスタンスに接続します。
ssh oracle@<ip_address_of_instance> -
Podmanのバージョンを確認します。
podman -v -
Podman CLIが動作していることを確認します。
podman run quay.io/podman/hello出力例:
[oracle@ol-server ~]$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob f82b04e85914 done Copying config dbd85e09a1 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - \ / (O) (O) \ ~~~| -=(,Y,)=- | .---. /` \ |~~ ~/ o o \~~~~.----. ~~ | =(X)= |~ / (O (O) \ ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io
ユーザーの言語の有効化
このチュートリアルで使用するユーザー名は、oracleです。
-
oracleユーザーの言語を有効にします。sudo loginctl enable-linger oracle
Podman用のSystemdユニット・ファイルの作成
-
systemdユニット・ファイルのディレクトリを作成します。
mkdir -p ~/.config/systemd/user -
Systemdユニット・ファイルを作成します。
cat << EOF | tee ~/.config/systemd/user/mycontainer.service > /dev/null [Unit] Description=My Podman Container [Service] Restart=always ExecStart=/usr/bin/podman run --rm --name mycontainer ghcr.io/oracle/oraclelinux9-nginx:1.20 ExecStop=/usr/bin/podman stop -t 10 mycontainer [Install] WantedBy=default.target EOF -
Systemdサービスを起動して有効にします。
systemctl --user daemon-reload systemctl --user enable --now mycontainer.service
Systemdが開始したPodmanの確認
-
サービスがPodmanを起動したことを確認します。
podman ps出力例:
[oracle@ol-node-01 ~]$ podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ada6b5a635f ghcr.io/oracle/oraclelinux9-nginx:1.20 nginx -g daemon o... 4 minutes ago Up 4 minutes 80/tcp, 443/tcp mycontainer -
systemdサービスのステータスを確認します。
systemctl --user status mycontainer.service出力例:
[oracle@ol-node-01 ~]$ systemctl --user status mycontainer.service ● mycontainer.service - My Podman Container Loaded: loaded (/home/oracle/.config/systemd/user/mycontainer.service; enabled; preset: disabled) Active: active (running) since Wed 2025-09-03 15:18:52 GMT; 1min 4s ago Main PID: 42554 (podman) Tasks: 22 (limit: 201624) Memory: 367.0M CPU: 7.432s CGroup: /user.slice/user-1001.slice/user@1001.service/app.slice/mycontainer.service ├─42554 /usr/bin/podman run --rm --name mycontainer ghcr.io/oracle/oraclelinux9-nginx:1.20 ├─42562 /usr/bin/podman run --rm --name mycontainer ghcr.io/oracle/oraclelinux9-nginx:1.20 ├─42567 catatonit -P ├─42631 /usr/bin/pasta --config-net --dns-forward 169.254.1.1 -t none -u none -T none -U none --no-map-gw --quiet --net> └─42634 /usr/bin/conmon --api-version 1 -c 9ada6b5a635f05242af94d921c045355a02ff1c5c6843b9b77d4797e6cc48947 -u 9ada6b5a> Sep 03 15:18:53 ol-node-01 podman[42562]: Getting image source signatures Sep 03 15:18:53 ol-node-01 podman[42562]: Copying blob sha256:dc9d5c72c83dcb74035f5659842a5bbdb9ceaaab724e942d1fafba3d9a66583d Sep 03 15:18:53 ol-node-01 podman[42562]: Copying blob sha256:768ce871c381eaff86a716a68d16a5fe365a62f4d44ae38e9e8b1ed8fd5bf4bd Sep 03 15:18:57 ol-node-01 podman[42562]: Copying config sha256:86da1899be3dbf9500534c241500247aa0467c76ebbeb2431e42433dcf3e4df2 Sep 03 15:18:57 ol-node-01 podman[42562]: Writing manifest to image destination Sep 03 15:18:58 ol-node-01 podman[42562]: 2025-09-03 15:18:58.037335665 +0000 GMT m=+5.552269770 container create 9ada6b5a635f05242a> Sep 03 15:18:58 ol-node-01 podman[42562]: 2025-09-03 15:18:58.025938165 +0000 GMT m=+5.540872270 image pull 86da1899be3dbf9500534c24> Sep 03 15:18:58 ol-node-01 podman[42562]: 2025-09-03 15:18:58.150895821 +0000 GMT m=+5.665829926 container init 9ada6b5a635f05242af9> Sep 03 15:18:58 ol-node-01 podman[42562]: 2025-09-03 15:18:58.156268852 +0000 GMT m=+5.671202956 container start 9ada6b5a635f05242af>これにより、systemdがPodmanでNginxコンテナを起動したことが確認されます。ただし、ログアウトしてもアクティブなままですか。
-
Ctrl-Cと入力してステータス出力を終了します。
ログアウト後にサービスがアクティブのままであることの確認
次に、現在のセッションを終了し、再接続してPodmanサービスがアクティブなままであることを確認します。
-
現在のセッションを終了するには、
exitと入力します。 -
最初に接続するために使用したものと同じ接続文字列を使用して、SSH経由でol-node-01インスタンスに再接続します。
ssh oracle@<ip_address_of_instance> -
Podmanサービスがアクティブであることを確認します。
podman ps -
systemdサービスのステータスを確認します。
systemctl --user status mycontainer.service
次のステップ
このチュートリアルでは、Podmanでユーザー・リンガリングを構成する方法を示します。リンガリングを有効にすると、ログアウトした後でも、PodmanコンテナをOracle Linuxのユーザー・サービスとして継続的に実行できます。このアプローチは、ルートレス・コンテナ管理の最新のベストプラクティスに準拠しています。追加のチュートリアルおよびコンテンツについては、Oracle Linuxトレーニング・ステーションを参照してください。
関連リンク
- Oracle Cloud Native Environmentのドキュメント
- Oracle Cloud Native Environmentトラック
- Oracle Linuxトレーニング・ステーション
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Configure User Lingering with Podman on Oracle Linux.
G44253-01