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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PostgreSQL

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

Docker

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

Q&A

0回答

4282閲覧

dockerで作成したDBに接続できない。

bobo

総合スコア40

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PostgreSQL

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

Docker

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

0グッド

0クリップ

投稿2019/09/12 14:45

編集2019/09/13 13:38

こちらに同様の質問がありましたが。。
https://teratail.com/questions/192188

今試しているのはWin10環境にDockerを入れ、PostgreSQL11にDocker立ち上げ時にDBをCreateさせたいと言うものです。

src

1-docker-compose.yml 2-docker/init/1_createdb.sql 3-docker/init/Dockerfile.localdb

◆docker-compose.yml

yml

1version: "3" 2 3services: 4 db: 5 build: 6 context: ./docker/init 7 dockerfile: Dockerfile.localdb 8 container_name: db 9 volumes: 10 - ./docker/init:/docker-entrypoint-initdb.d 11 ports: 12 - 5432:5432 13 environment: 14 - "POSTGRES_USER=postgres" 15 - "POSTGRES_PASSWORD=postgres" 16 - "POSTGRES_DB=testdb"

◆1_createdb.sql

SQL

1create database testdb;

◆Dockerfile.localdb

docker

1FROM postgres:11.1 2RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 3ENV LANG ja_JP.utf8 4COPY *.sql /docker-entrypoint-initdb.d/

この状態から以下のようにコマンドを打ちました。
添付の画像の通り、マスキングしてますが、DB自体はCREATEされてますよね?

cmd

1docker-compose build db 2docker-compose up -d 31 docker exec -it db /bin/bash 42 psql -U postgres 53 \l

イメージ説明
ただ、このDBコンテナを立ち上げた状態でもDB接続ができません。
所有者がpostgresなので接続できるはずなんですが、何が悪いのでしょうか・・?
アクセス権??

お聞かせいただければ幸いです。

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

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

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

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

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

CHERRY

2019/09/14 01:28

どこから、どのようにして接続を試みているのでしょうか? PostgreSQL のコンテナの中ですか? それ以外のコンテナですか?
bobo

2019/09/15 08:31

返事が遅れて申し訳ありません。 接続はホストPCからの接続で、postgreSQLインストール時に自動作成されるDB(名:postgres)には接続できています。添付画像のようにflywayを介したDBコンテナ内に作成されたDB(名:testDB)には接続できない状況です。 A5.exeと言うDB接続ツール(ホストPC)から接続しても、接続エラーとなります。ですので、ホストPCに作成したDBは接続でき、DBコンテナに作成したDBは接続できない状況です。
bobo

2019/09/15 08:35

また、そもそもホストPCのOSがWin10(Home)であり、DockerForWindowsではインストーラはProfetional以上じゃないと拒否され、DockerToolBoxをインストールしました。そもそも非推奨っぽいですし、これが影響しているのかもです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問