我想在 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
关于postgresql - Docker - 如何在 postgres 容器中运行 psql 命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37099564/