Docker-如何在postgres容器中运行psql命令? [英] Docker - How can run the psql command in the postgres container?

查看:885
本文介绍了Docker-如何在postgres容器中运行psql命令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在postgres映像中使用psql以便在数据库上运行一些查询。
但是不幸的是,当我连接到postgres容器时,遇到了该错误,找不到psql命令...

I would like to use the psql in the postgres image in order to run some queries on the database. But unfortunately when I attach to the postgres container, I got that error the psql command is not found...

对我来说,这有点如何在容器中运行postgre sql查询或命令之谜。

For me a little bit it is a mystery how I can run postgre sql queries or commands in the container.

如何在postgres容器中运行psql命令? (我是Docker世界中的新手)

How run the psql command in the postgres container? (I am a new guy in Docker world)

我使用Ubuntu作为主机,但是我没有在主机上安装postgres,而是使用postgres容器

I use Ubuntu as a host machine, and I did not install the postgres on the host machine, I use the postgres container instead.

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:

And this is my 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 The command to run a command to a running container. The it flags open an interactive tty. Basically it will cause to attach to the terminal. If you wanted to open the bash terminal you can do this

docker exec -it yiialkalmi_postgres_1 bash


  • yiialkalmi_postgres_1
    容器名称(您可以请使用容器ID,在您的情况下为 40e39bd0329a

  • psql -U project -W project
    要对正在运行的容器执行的命令

  • yiialkalmi_postgres_1 The container name (you could use the container id instead, which in your case would be 40e39bd0329a)
  • psql -U project -W project The command to execute to the running container

U 用户

这些由您在此处指定

environment:
    POSTGRES_DB: project
    POSTGRES_USER: project
    POSTGRES_PASSWORD: project

这篇关于Docker-如何在postgres容器中运行psql命令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆