[解決済み] Docker - postgresコンテナでpsqlコマンドを実行するには?
質問
データベース上でいくつかのクエリを実行するために、postgresイメージでpsqlを使用したいと思います。 しかし、残念ながら、postgresコンテナにアタッチすると、psqlコマンドが見つからないというエラーが表示されました。
コンテナ内でどのようにpostgreのSQLクエリやコマンドを実行できるのか、私にとっては少し謎です。
どのようにpostgresコンテナでpsqlコマンドを実行するのでしょうか?(私はDockerの世界では新参者です)
私はホストマシンとしてUbuntuを使用しており、ホストマシンにpostgresをインストールせず、代わりにpostgresコンテナを使用しています。
docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------
yiialkalmi_app_1 /bin/bash Exit 0
yiialkalmi_nginx_1 nginx -g daemon off; Up 443/tcp, 0.0.0.0:80->80/tcp
yiialkalmi_php_1 php-fpm Up 9000/tcp
yiialkalmi_postgres_1 /docker-entrypoint.sh postgres Up 5432/tcp
yiialkalmi_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
ここにコンテナがあります。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
315567db2dff yiialkalmi_nginx "nginx -g 'daemon off" 18 hours ago Up 3 hours 0.0.0.0:80->80/tcp, 443/tcp yiialkalmi_nginx_1
53577722df71 yiialkalmi_php "php-fpm" 18 hours ago Up 3 hours 9000/tcp yiialkalmi_php_1
40e39bd0329a postgres:latest "/docker-entrypoint.s" 18 hours ago Up 3 hours 5432/tcp yiialkalmi_postgres_1
5cc47477b72d redis:latest "docker-entrypoint.sh" 19 hours ago Up 3 hours 6379/tcp yiialkalmi_redis_1
そして、これが私のdocker-compose.ymlです。
app:
image: ubuntu:16.04
volumes:
- .:/var/www/html
nginx:
build: ./docker/nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
volumes:
- ./docker/nginx/conf.d:/etc/nginx/conf.d
php:
build: ./docker/php/
expose:
- 9000
links:
- postgres
- redis
volumes_from:
- app
postgres:
image: postgres:latest
volumes:
- /var/lib/postgres
environment:
POSTGRES_DB: project
POSTGRES_USER: project
POSTGRES_PASSWORD: project
redis:
image: redis:latest
expose:
- 6379
どのように解決するのですか?
docker exec -it yiialkalmi_postgres_1 psql -U project -W project
いくつかの説明
-
docker exec -it
実行中のコンテナにコマンドを実行するコマンドです。そのit
フラグは対話型ttyを開きます。基本的にはターミナルにアタッチするようになります。もし bash ターミナルを開きたいなら、次のようにします。
docker exec -it yiialkalmi_postgres_1 bash
-
yiialkalmi_postgres_1
コンテナ名 (コンテナ ID を代わりに使用することもできます。この例では40e39bd0329a
) -
psql -U project -W project
実行中のコンテナに対して実行するコマンド -
U
ユーザー -
W
接続時にパスワードのプロンプトが必要であることを psql に伝えてください。 このパラメータはオプションです。 このパラメータがない場合、通常パスワードが必要であることを発見する余分な接続の試行が行われます。 PostgreSQLドキュメント . -
project
には、接続したいデータベースを指定します。は必要ありません。-d
パラメータがオプションでない最初の引数であるとき、それをdbnameとしてマークする必要はありません。-d
は、コマンドラインの非オプションの第1引数としてdbnameを指定するのと同じです。
これらは、ここであなたが指定する
environment:
POSTGRES_DB: project
POSTGRES_USER: project
POSTGRES_PASSWORD: project
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] psqlでデータベースを切り替えるには?
-
[解決済み】Dockerは仮想マシンとどう違うの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのテーブルをパーティション分割する3つの方法
-
Postgresqlへのリモートアクセスの設定方法(ファイアウォールの設定またはOFFが必要です。)
-
PostgresqlのデータベーステーブルのデータをExcel形式にエクスポートする方法(推奨)
-
どのように定期的にLinux上でpostgresqlのデータベースをバックアップする
-
Postgresqlのデータベース権限まとめ
-
PostgreSQLの自己インクリメント構文使用上の注意点
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み] PostgreSQLの場合。PostgreSQLですべてのテーブルのOWNERを同時に変更する
-
[解決済み] Postgres で、あるデータベースから別のデータベースにテーブルをコピーする
-
[解決済み] Postgresデータベースの全テーブルを切り捨てる