CentOS8の環境下でDockerをインストールし、データベース「PostgreSQL」のイメージの起動までをまとめました。
コンテナ起動からアクセスログインまですぐにできるので簡単です。
「CentOS8」環境下でDockerコンテナでPostgreSQLを起動する手順
公式ページではDockerイメージとコンテナの起動手順、設定コマンドを確認できます。
参照は以下のページを確認してください。
https://hub.docker.com/_/postgres/
CentOS8でのPostgresSQLの起動手順は以下となります。
Dockerで「PostgresSQL」のコンテナを起動
起動は公式ページの内容に従いとりあえずそのまま利用します。
- コンテナ名:some-postgres
- パスワード:mysecretpassword
バージョンは最新をインストールするためバージョン指定なしで起動します。
最新のイメージで起動
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
バージョン指定でイメージを起動する場合
特定のバージョンでPostgresSQLを起動したい場合は以下のコマンドを実行します。
※以下はバージョン11.7で起動
~ $ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres:11.7
PostgreSQLの起動確認
上記で起動が成功した後は以下で確認を実施します。
PostgreSQLのイメージがダウンロードされていることが確認できます。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE postgres latest 73119b8892f9 12 days ago 314MB nginx latest 6678c7c2e56c 12 days ago 127MB centos 7 5e35e350aded 4 months ago 203MB $
「docker ps」コマンドで「PostgreSQL」のコンテナが起動していることを確認します。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b38c4c589c59 postgres "docker-entrypoint.s…" 45 seconds ago Up 42 seconds 5432/tcp db_db_1 36e8918065fc adminer "entrypoint.sh docke…" 45 seconds ago Up 43 seconds 0.0.0.0:8000->8080/tcp db_adminer_1 66e513d88655 postgres "docker-entrypoint.s…" 9 hours ago Up 9 hours 5432/tcp some-postgres $
Docker Composeの設定ファイルの作成
Docker Composeの設定ファイルを作成し、データベースを起動します。
PostgreSQLデータベースを起動させるための「stack.yml」を作成します。
今回はテストとして、「/docker/db」配下に「stack.yml」というファイルを作成します。
フォルダは「mkdir」で事前に作成しておきます。
$ pwd /docker/db
「touch」コマンドで「stack.yml」ファイルを作成します。
$ touch stack.yml
ファイル作成後、「vim」コマンドで編集をします。
$ vim stack.yml
※stack.yml
# Use postgres/example user/password credentials version: '3.1' services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080
上記で設定した内容は以下となります。
- アクセス先URL: localhost:8080
- サーバ: db
- ユーザー名: postgres
- パスワード: example
「docker-compose」でファイル名を指定して「PostgreSQL」を実行
作成したファイルの階層で「docker-compose」コマンドを実行します。
$ docker-compose -f stack.yml up
「commnd not found」エラーが発生した場合
問題なく実行できれば成功ですが、以下のようにエラーが発生する場合は「docker-compose」のインストールが必要となります。
$ docker-compose -f stack.yml up -bash: docker-compose: command not found $
インストールはpythonをインストールしていれば「pip」コマンドで簡単にインストールすることが可能です。
$ pip install docker-compose
バックグラウンドで「PostgreSQL」を起動
PostgreSQLをバックグラウンドで実行する場合は以下のコマンドを実行します
$ docker-compose -f stack.yml up -d
Dockerコンテナで起動した「PostgreSQL」へアクセス
上記で「PostgreSQL」が起動したら「http://localhost:8080」へアクセスします。
「CentOS8」でPostgreSQLへアクセス・ログイン
今回構築したPosgreSQLにアクセスする場合は以下コマンドを実行します。
「some-postgres」という名前で構築しているので、「some-postgres」へアクセスします。
$ docker exec -ti some-postgres bash root@66e513d88655:/#
ログインに成功したら以下でバージョンを確認します。
root@66e513d88655:/# psql --version psql (PostgreSQL) 12.2 (Debian 12.2-2.pgdg100+1) root@66e513d88655:/#
以下コマンドでスーパーユーザでPostgreSQLにログインをします。
root@66e513d88655:/# psql -U postgres psql (12.2 (Debian 12.2-2.pgdg100+1)) Type "help" for help. postgres=#
データベース「sample」を作成
新しいデータベースを作成します。
以下ように入力し実行します。
postgres=# create database sample; CREATE DATABASE postgres-#
成功するとSQLコマンドがサーバへ送信されて処理されます。
ログアウト
ログアウトは以下コマンドを実行します。
postgres-# \q root@66e513d88655:/# exit exit $
CentOS8のDockerコンテナで「PostgreSQL」の起動と動作確認は以上となります。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す