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 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 密码

  • project 您要连接的数据库。

这些是您在这里指定的

environment:

POSTGRES_DB: project

POSTGRES_USER: project

POSTGRES_PASSWORD: project

以上是 Docker-如何在postgres容器中运行psql命令? 的全部内容, 来源链接: utcz.com/qa/431343.html

回到顶部