type
status
date
slug
summary
tags
category
icon
password
1) プライベートレジストリの作成
- 接続はデフォルトで暗号化されていない(HTTP)状態とする。
2) Docker Hubからイメージをダウンロード
- 「nginx」ウェブサーバーイメージ
3) Containerfileの作成
- postgresqlイメージをカスタマイズするContainerfileを作成する。
- このカスタムイメージのデフォルトユーザーmkを「simona」とする。
- イメージ名は「validation-postgres」とする。
4) イメージのプッシュと削除
- 「nginx」と「validation-postgres」のイメージをローカルのプライベートレジストリにアップロードする。
- アップロード後、ローカルのイメージはすべて削除する。
5) ボリュームの作成とカスタムコンテンpod,ツの設定
- 「validation-volume」という名前のボリュームを作成する。
- 自分の名前を含むカスタムの
index.html
ファイルを用意し、ボリュームのマウントポイントにコピーする。
- ローカルレジストリからnginxイメージをダウンロードする。
- nginxコンテナを起動し、カスタムの
index.html
が正しく配信されていることを確認する。
- コンテナを削除し、新しくコンテナを起動しても同じコンテンツが配信されることを確認する。
6) ディレクトリ作成とPostgresqlコンテナの起動
- 「database_validation」というディレクトリを作成する。
- ローカルレジストリから「validation-postgres」イメージをダウンロードする。
- PostgreSQLコンテナを起動し、「simona」ユーザーが「database_validation」ディレクトリに正しくアクセスできる権限を持っていることを確認する。
解決手順
こんにちは。今回はPodmanを使って、プライベートレジストリの構築からカスタムイメージ作成、ボリュームを使った永続化設定まで一連の流れを体験しました。
Docker Hubからのイメージ利用だけでなく、自分だけのローカルレジストリを使った運用の基礎が身につく内容です。ぜひ参考にしてください。
1. プライベートレジストリの構築(HTTP接続)
まず、プライベートなコンテナイメージレジストリを用意します。今回はセキュリティを省いて「HTTP(非暗号化)」での接続に設定しました。
これでローカルに
localhost:5000
でアクセスできるシンプルなレジストリが立ち上がります。2. Docker Hubからnginxとpostgresqlイメージをダウンロード
次に公式イメージをダウンロードします。
3. PostgreSQLのカスタムイメージを作成
validation-postgres
という名前で、デフォルトユーザーを simona
に変更したカスタムイメージを作ります。Containerfileの例:
これを保存して、ビルドします。
4. イメージをローカルレジストリへプッシュ&削除
まずタグ付けしてからプッシュします。
プッシュ後はイメージを一旦削除します。
5. ボリューム作成とnginxでカスタムWebコンテンツを提供
ボリュームの作成とHTML準備
index.html
をボリュームのマウントポイントにコピーします。nginxコンテナの起動
動作確認
ブラウザで
http://localhost:8080
にアクセスして、自作の名前入りページが表示されることを確認。6. PostgreSQLコンテナで「simona」ユーザーの権限検証
ディレクトリ作成
イメージ取得とコンテナ起動
simonaユーザーのアクセス権確認
コンテナ内で
/var/lib/postgresql/data
ディレクトリが simona
にアクセス可能かチェックしてください。まとめ
- ローカルのプライベートレジストリを簡単に作れた
- カスタムユーザーを持つPostgreSQLイメージの作成
- ボリュームを使った永続的なnginxコンテンツの提供
- ローカルレジストリを活用したイメージ管理
PodmanはDocker互換でかつRootlessで安全に使えるので、開発環境としてもおすすめです。
- Author:minami
- URL:http://preview.tangly1024.com/private-license/242d7ae8-88e2-8098-aec3-e77bba1bb514
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts