質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

pgAdmin

pgAdminは、オープンソースのPostgreSQL管理ツール。様々な機能を持ち、コマンドラインベースでPostgreSQLへ行う操作のほとんどをpgAdminを用いて実行することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

4392閲覧

dockerコンテナで作ったcentOS内のPostgreSQLにMacのpgAdmin4からアクセスしたい

june_223

総合スコア18

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

pgAdmin

pgAdminは、オープンソースのPostgreSQL管理ツール。様々な機能を持ち、コマンドラインベースでPostgreSQLへ行う操作のほとんどをpgAdminを用いて実行することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/02/16 08:23

編集2020/02/20 14:08

MacのpgAdmin4からdockerコンテナのホストOS(centOS7)のPostgreSQLにアクセスしたいのですが、設定方法がわかりません。

ホストOS:Mac
ゲストOS:CentOS7

・MacのdocekrでCentOS7を立ち上げる。
・そのCentOS7にexecで入り、yumでPostgreSQLをインストール。
・PostgreSQLの初期設定とDBのリストアを完了。
・PostgreSQLへのアドレスはlocalhost、ポートは5432と標準通りに設定。
・apacheなどweb系いろいろとインストールしてCakePHPを立ち上げる。
・Macのsafariからcakephpへのアクセス可能。
・postgresql-setup initdbをして、
・pg_hba.conf と postgresql.confの諸設定も完了してCakePHPからPostgreSQLへの接続は正常接続できています

とここまでは希望している動作ができたのですが、
MacのpgAdmin4からdockerコンテナのホストOS(CentOS7)のPostgreSQLにアクセスしたいのですが、設定方法がわかりません。

※プロセスごとにコンテナを作った方がいいのかもしれませんが、実サーバーと作業手順等全く同じで構築したかったので、このような方法でdockerを使っています。

発生している問題・エラーメッセージ

pgAdmin4でHost name addressをlocalhostに設定すると以下のエラーが表示されます

Unable to connect to server: could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

Dockerfile

FROM centos:centos7 RUN yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm \ && yum install -y --enablerepo=remi-php55 php php-pdo_pgsql which wget git RUN yum -y install postgresql-server

docker-compose.yml

version: '3' services: web: container_name: centos7-apache24-php55 hostname: 'abcserver' build: context: . dockerfile: ./Dockerfile privileged: true command: /sbin/init volumes: - .:/var/www/html:cached ports: - "5000:80" - "5432:5432"

pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5

試したこと

ホストOSでhostname -i でip確認して、そのipをpdAdmin4のhostaddressに入力しましたがダメでした。

補足情報(FW/ツールのバージョンなど)

ホスト:MacOS 10.14.6
docker desktop version:2.2.0.3
pgAdmin 4.18

ゲスト:CentOS7.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

おそらくdockerコンテナのポートが公開されていないのではないでしょうか。
pオプションを指定して、コンテナを起動してみるとどうなりますでしょうか。

docker run -it -p 5432:5432 centos7

ご参考:https://docs.docker.com/engine/reference/run/#expose-incoming-ports

投稿2020/02/18 14:41

編集2020/02/18 14:42
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

june_223

2020/02/19 08:47

apacheも利用するので8888:80でrun しています。5432でrunするとこんどはapacheが利用できなくなりそうです。ご指摘いただいたポートという点から何か解決策が探れそうな気がしました。ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/02/19 09:07 編集

なるほど。 そしたら -p 8888:80 -p 5432:5432 と2つのオプションを指定してみてください!複数ポートを公開できます!
june_223

2020/02/20 05:11

知りませんでした!ありがとうございます。 試してみましたがpdAdmin4からやはりアクセスできませんでした。
退会済みユーザー

退会済みユーザー

2020/02/20 12:22

pg_hba.conf の設定を拝見させてください。
june_223

2020/02/20 14:09

追記しましました。METHODはmd5とtrustを共に試し、postgresをrestartしましたが、ダメでした。
退会済みユーザー

退会済みユーザー

2020/02/20 14:34 編集

ありがとうございます。 pg_hba.conf でホストのIPを許可していない気がします。 ホストのIPをIPv4 local connectionsの項目に追加し、postgres.confの listen_addresses = '*' を設定しているかご確認ください。
june_223

2020/02/20 14:36

ありがとうございます。postgres.confはご指定の箇所は設定済みです。数行下のportについても5432に設定しております。CakePHPからはDBにアクセスできております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問