当前位置: 首页 > 知识库问答 >
问题:

Docker-如何在postgres容器中运行psql命令?

沃威
2023-03-14

我想使用postgres映像中的psql在数据库上运行一些查询。但不幸的是,当我附加到postgres容器时,我得到的错误是psql命令找不到...

对我来说,如何在容器中运行postgre sql查询或命令是一个谜。

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

共有1个答案

空翼
2023-03-14
docker exec -it yiialkalmi_postgres_1 psql -U project -W project project

一些解释

  • Docker exec-it将命令运行到正在运行的容器的命令。it标志打开交互式TTY。基本上它会导致连接到终端。如果要打开bash终端,可以执行以下操作

Docker exec-IT YIALKALMI_POSTGRES_1 BASH

这些是您在这里指定的

environment:
    POSTGRES_DB: project
    POSTGRES_USER: project
    POSTGRES_PASSWORD: project
 类似资料:
  • 问题内容: 我想在postgres映像中使用psql以便在数据库上运行一些查询。但是不幸的是,当我连接到postgres容器时,出现了该错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令?(我是Docker世界中的新手) 我使用Ubuntu作为主机,但没有在主机上安装postgres,而是使用postgre

  • 这个问题与这个问题相关:Docker-如何在postgres容器中运行psql命令? 但是上面提供的解决方案只在手动执行任务时有效,而这里的用户希望使用docker-compose自动执行任务。 因为在执行运行时,postgresql服务器还没有启动! 有没有办法克服这个限制?

  • 问题内容: 我使用第三方GUI(Synology Docker软件包)来设置Docker容器。但是,它的局限性使我需要从命令行运行容器。(我想映射另一个主机IP绑定端口) 现在,由于已经完成了许多设置,因此我想检索启动该容器的原始运行命令,然后可以将端口映射端口更改为新端口。例如。“ ” 我找不到这样做的方法,事件使用“ docker inspect”,没有提供此类信息。 请提供一些建议以解决此问

  • 我从OS X VM docker主机创建了一个docker容器。我使用run命令创建了它,并基于image-off-docker-hub创建了容器。 我现在连接到我的容器后,它创建并登录为根和在我的容器内的命令提示符。 我试图安装homebrew,但由于某些原因,我无法运行命令来安装homebrew: 当我跑步时,我会得到一个痛击: curl:找不到命令 不知道为什么我不能在我的容器里使用卷曲。

  • 问题内容: 我正在研究Centos7。我有一个运行Jenkins的Docker容器。在那个Jenkins容器中,我必须构建并运行其他Docker容器。但是詹金斯不认识码头工人。我能够执行一个shell并将docker安装在容器中。但是,是否有可能让容器在主机上使用我的docker- engine?如何使用? 在Jenkins-(docker)-容器中安装Docker的最佳选择是什么? 问题答案:

  • 问题内容: 我创建了一个容器,因此它不是交互式的。 我看到容器已退出: 现在,我想在计算机上偶尔运行命令并退出。只是为了得到回应。 我试图启动机器。我尝试附加。我以为我可以用一个容器打电话,但这似乎是不允许的。使用似乎可以运行,然后迅速存在。 我想退出后回到互动模式。 我试过了: 但是我得到: 但是,如果我启动它,它仍然会退出。赶上22.我赢不了。 问题答案: 在2014年10月,Docker团队