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

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

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PostgreSQL

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

Docker

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

解決済

dockerコンテナ内から別のコンテナ内のDBへアクセスの仕方がわかりません

akira28
akira28

総合スコア7

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PostgreSQL

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

Docker

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

2回答

0リアクション

0クリップ

1140閲覧

投稿2018/02/14 14:44

前提・実現したいこと

実行環境:
MacOS High Sierra 10.13.3
docker: 17.12.0-ce, build c97c6d6
docker-compose: 1.18.0, build 8dd22a9

実現したいことは,
docker-composeでappコンテナとdbコンテナを起動し,
appコンテナ内からdbコンテナ内のpostgresqlサーバーに接続がしたいです.

現状, appコンテナの立ち上げ,内部へアクセスまでが出来ていますが,
そこからdbコンテナ内のpostgresqlサーバーへアクセスが出来ていません.

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

psqlコマンドが見つからない

root@fa31b088af86:/# psql -U pguser -d hoge -p 5432 bash: psql: command not found

該当のソースコード

docker-compose.yml

version: '2' services: db: image: postgres ports: - 5432 environment: - POSTGRES_USER=pguser - POSTGRES_PASSWORD=pgpass - POSTGRES_DB=hoge # データの永続化 volumes: - ./db/postgresql:/var/lib/postgresql/data tty: true app: # dockerfileの場所を指定 build: . # dbコンテナを指定 depends_on: - db # appコンテナの/etc/hostsにdbのipを記述する links: - db # docker-compose upした時に立ち上げたままにする tty: true

dockerfile

FROM ubuntu:16.04 RUN apt-get -y update RUN apt-get -y upgrade

試したこと

# docker-compose ビルドしてコンテナを立ち上げ docker-compose up -d --build
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9c5680547fad dockercompose_app "/bin/bash" 13 seconds ago Up 12 seconds dockercompose_app_1 f5c2a10c43c1 postgres "docker-entrypoint.s…" 13 seconds ago Up 13 seconds 0.0.0.0:32769->5432/tcp dockercompose_db_1
# 立ち上げたappコンテナ(dockercompose_app_1)の内部にアクセス docker exec -it dockercompose_app_1 bash # postgresqlに接続 → psqlコマンドがありません psql -U pguser -d hoge -p 5432 bash: psql: command not found

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PostgreSQL

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

Docker

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