はじめに
Red Hat Enterprise Linux (RHEL) を扱うシステム管理者にとって、コンテナ化されたアプリケーションの管理は不可欠なスキルです。このチャレンジでは、コマンドラインツールの podman と skopeo を使用して、基本的なコンテナ管理タスクを実行します。パブリックレジストリからのイメージのプル、コンテナとしての実行、構成の検査、およびローカルレジストリへのイメージのコピーを実践します。
Red Hat Enterprise Linux (RHEL) を扱うシステム管理者にとって、コンテナ化されたアプリケーションの管理は不可欠なスキルです。このチャレンジでは、コマンドラインツールの podman と skopeo を使用して、基本的なコンテナ管理タスクを実行します。パブリックレジストリからのイメージのプル、コンテナとしての実行、構成の検査、およびローカルレジストリへのイメージのコピーを実践します。
最初のタスクは、パブリックレジストリからコンテナイメージをダウンロードし、ローカルシステムで実行することです。コンテナの機能をデモンストレーションするためによく使われる nginx ウェブサーバーイメージを使用します。
podman コマンドを使用して、docker.io レジストリから最新の nginx コンテナイメージをプルしてください。nginx イメージからコンテナを実行し、正常に動作していることを確認してください。my-nginx としてください。80 を、ローカルマシンのポート 8080 にマッピングしてください。コンテナの起動に成功したら、アクセスを確認できます。curl コマンドを実行すると、デフォルトの Nginx 歓迎ページが返されるはずです。
$ curl http://localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
コンテナを実行した後、その構成、ネットワーク設定、マウントされたボリュームなどの詳細情報を取得する必要があることがよくあります。podman inspect コマンドを使用すると、これらの情報を構造化された JSON 形式で取得できます。
my-nginx コンテナを検査してください。podman inspect コマンドを使用して、my-nginx コンテナの詳細を取得してください。~/project/containers/ ディレクトリ内の nginx-inspect.json という名前のファイルに保存してください。nginx-inspect.json ファイルには、コンテナのすべての構成詳細を含む大きな JSON 配列が格納されます。cat や less コマンドで内容を確認できます。
$ cat ~/project/containers/nginx-inspect.json
[
{
"Id": "a933dd...c8e",
"Created": "2023-10-27T10:30:00.123456789Z",
"Path": "/docker-entrypoint.sh",
"Args": [
"nginx",
"-g",
"daemon off;"
],
"State": {
...
skopeo は、パブリックレジストリ、ローカルストレージ、プライベートレジストリなど、異なる種類のストレージ間でコンテナイメージを移動するための強力なツールです。このステップでは、nginx イメージをマシン上で動作しているローカルコンテナレジストリにコピーします。
デフォルトでは、Podman と Skopeo は安全でない(HTTP)レジストリへのイメージのプッシュを許可しません。まず、最新の v2 レジストリ構成形式を使用して、ローカルレジストリを信頼するようにシステムを構成する必要があります。
localhost:5000 にある安全でないローカルレジストリへのイメージのプッシュを許可するようにシステムを構成してください。skopeo を使用して、nginx:latest イメージを docker.io からローカルレジストリにコピーしてください。/etc/containers/registries.conf ファイルを編集し、v2 形式を使用して localhost:5000 を安全でないレジストリ(insecure registry)として構成してください。これには sudo 権限が必要です。skopeo copy を使用して docker.io/library/nginx:latest イメージをコピーしてください。localhost:5000/my-local-nginx:latest としてください。podman pull を使用して localhost:5000/my-local-nginx:latest を取得してください。このチャレンジでは、Red Hat Enterprise Linux システムでコンテナを管理するための必須スキルを学びました。podman を使用してイメージをプルし、ポートマッピングを伴う名前付きコンテナとして実行し、その詳細な構成を検査することに成功しました。さらに、実務で重要なタスクである、安全でないレジストリの構成と、skopeo を使用したパブリックソースからプライベートなローカルレジストリへのイメージのコピーを実践しました。これらのコマンドは、現代のコンテナ化された環境で作業するシステム管理者にとって基本的なツールです。