PostgreSQLイメージとPodmanを利用した使い捨てのコンテナ環境 268 views Post @wakairo 2024/09/20 21:42 最終更新 2024/09/20 21:56 PostgreSQLに関した練習やテスト、実験などを行うときにPostgreSQLが動いている一時的な環境が欲しくなるときがあります。 PostgreSQLイメージとPodmanを利用すると、特定バージョンのPostgreSQLに関する一通りの操作ができる一時的なコンテナ環境を用意することが出来ます。 以下にコンテナ環境の作成、利用、削除の流れと方法を示します。 コンテナ環境の作成 以下の3つのコマンドを実行することで、PostgreSQLのコンテナ環境を作成し、クライアント側のコンテナのbash環境に入ることが出来ます。 なお、コマンド内の「16」のところはPostgreSQLのメジャーバージョンに相当しますので、ご利用になりたいバージョンの数に変更してください。 また、-v "$PWD":/x -w /xのオプションにより、ホストOSのカレントディレクトリにコンテナ内からもアクセス出来る状態でbashが立ち上がります。 したがって、実験などに利用したいファイルをカレントディレクトリに置いてから以下のコマンドを実行すればコンテナ内でもそのファイルを利用できますし、 コンテナ内で/xのディレクトリに作成したファイルはコンテナ環境を終了した後もホストOSのカレントディレクトリに残ります。 podman pod create --name tmp_pg podman run --name tmp_pg-server --pod tmp_pg -e POSTGRES_PASSWORD=postgres -d postgres:16 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash 以下のようなプロンプトが表示されていれば成功です。クライアント側のコンテナのbash環境に入れました。 root@tmp_pg:/x# クライアント側のコンテナのbash環境の利用 このbash環境では、psqlなどのPostgreSQLのコマンドを一通り利用することが出来ます。以下に例を示します。 PostgreSQLのターミナルを開く例: psql -h localhost -U postgres -d postgres バックアップファイルを作成する例: pg_dump -Fc -h localhost -U postgres -d postgres -f backup.dump バックアップファイルをリストアする例: pg_restore --clean -h localhost -U postgres -d postgres backup.dump クライアントのコンテナを終了しそのbash環境から退出する場合はexitコマンドで抜けられます。 また、退出後にもう一度クライアントを使いたくなった場合は、後述のコンテナ環境全体の削除をまだしていなければ、 以下の3つめのコマンドだけ実行すれば、クライアントのコンテナをもう一度作成しそのbash環境に入ることが出来ます。 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash コンテナ環境全体の削除 以下のコマンドで、コンテナ環境全体の停止と削除が実行できます。 podman pod stop tmp_pg && podman pod rm tmp_pg
@wakairo 2024/09/20 21:42 最終更新 2024/09/20 21:56 PostgreSQLに関した練習やテスト、実験などを行うときにPostgreSQLが動いている一時的な環境が欲しくなるときがあります。 PostgreSQLイメージとPodmanを利用すると、特定バージョンのPostgreSQLに関する一通りの操作ができる一時的なコンテナ環境を用意することが出来ます。 以下にコンテナ環境の作成、利用、削除の流れと方法を示します。 コンテナ環境の作成 以下の3つのコマンドを実行することで、PostgreSQLのコンテナ環境を作成し、クライアント側のコンテナのbash環境に入ることが出来ます。 なお、コマンド内の「16」のところはPostgreSQLのメジャーバージョンに相当しますので、ご利用になりたいバージョンの数に変更してください。 また、-v "$PWD":/x -w /xのオプションにより、ホストOSのカレントディレクトリにコンテナ内からもアクセス出来る状態でbashが立ち上がります。 したがって、実験などに利用したいファイルをカレントディレクトリに置いてから以下のコマンドを実行すればコンテナ内でもそのファイルを利用できますし、 コンテナ内で/xのディレクトリに作成したファイルはコンテナ環境を終了した後もホストOSのカレントディレクトリに残ります。 podman pod create --name tmp_pg podman run --name tmp_pg-server --pod tmp_pg -e POSTGRES_PASSWORD=postgres -d postgres:16 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash 以下のようなプロンプトが表示されていれば成功です。クライアント側のコンテナのbash環境に入れました。 root@tmp_pg:/x# クライアント側のコンテナのbash環境の利用 このbash環境では、psqlなどのPostgreSQLのコマンドを一通り利用することが出来ます。以下に例を示します。 PostgreSQLのターミナルを開く例: psql -h localhost -U postgres -d postgres バックアップファイルを作成する例: pg_dump -Fc -h localhost -U postgres -d postgres -f backup.dump バックアップファイルをリストアする例: pg_restore --clean -h localhost -U postgres -d postgres backup.dump クライアントのコンテナを終了しそのbash環境から退出する場合はexitコマンドで抜けられます。 また、退出後にもう一度クライアントを使いたくなった場合は、後述のコンテナ環境全体の削除をまだしていなければ、 以下の3つめのコマンドだけ実行すれば、クライアントのコンテナをもう一度作成しそのbash環境に入ることが出来ます。 podman run -it --rm -v "$PWD":/x -w /x --name tmp_pg-bash --pod tmp_pg postgres:16 bash コンテナ環境全体の削除 以下のコマンドで、コンテナ環境全体の停止と削除が実行できます。 podman pod stop tmp_pg && podman pod rm tmp_pg
PostgreSQLに関した練習やテスト、実験などを行うときにPostgreSQLが動いている一時的な環境が欲しくなるときがあります。 PostgreSQLイメージとPodmanを利用すると、特定バージョンのPostgreSQLに関する一通りの操作ができる一時的なコンテナ環境を用意することが出来ます。
以下にコンテナ環境の作成、利用、削除の流れと方法を示します。
コンテナ環境の作成
以下の3つのコマンドを実行することで、PostgreSQLのコンテナ環境を作成し、クライアント側のコンテナのbash環境に入ることが出来ます。
なお、コマンド内の「16」のところはPostgreSQLのメジャーバージョンに相当しますので、ご利用になりたいバージョンの数に変更してください。 また、
-v "$PWD":/x -w /x
のオプションにより、ホストOSのカレントディレクトリにコンテナ内からもアクセス出来る状態でbashが立ち上がります。 したがって、実験などに利用したいファイルをカレントディレクトリに置いてから以下のコマンドを実行すればコンテナ内でもそのファイルを利用できますし、 コンテナ内で/x
のディレクトリに作成したファイルはコンテナ環境を終了した後もホストOSのカレントディレクトリに残ります。以下のようなプロンプトが表示されていれば成功です。クライアント側のコンテナのbash環境に入れました。
クライアント側のコンテナのbash環境の利用
このbash環境では、
psql
などのPostgreSQLのコマンドを一通り利用することが出来ます。以下に例を示します。PostgreSQLのターミナルを開く例:
バックアップファイルを作成する例:
バックアップファイルをリストアする例:
クライアントのコンテナを終了しそのbash環境から退出する場合は
exit
コマンドで抜けられます。 また、退出後にもう一度クライアントを使いたくなった場合は、後述のコンテナ環境全体の削除をまだしていなければ、 以下の3つめのコマンドだけ実行すれば、クライアントのコンテナをもう一度作成しそのbash環境に入ることが出来ます。コンテナ環境全体の削除
以下のコマンドで、コンテナ環境全体の停止と削除が実行できます。