加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:35:36 所属栏目:百科 来源:网络整理
导读:我想在postgres图像中使用psql,以便在数据库上运行一些查询。 但不幸的是,当我附加到postgres容器时,我得到了错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令? (我是Docker世界的
我想在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
用于向正在运行的容器运行命令的命令。它标志打开一个交互式tty。基本上它会导致连接到终端。如果你想打开bash终端,你可以这样做

docker exec -it yiialkalmi_postgres_1 bash

> yiialkalmi_postgres_1
容器名称(您可以使用容器ID,在您的情况下将是40e39bd0329a)
> psql -U项目-W项目
执行到正在运行的容器的命令
> U用户
> W密码
>投影要连接的数据库。

这些是你在这里指定的

environment:
    POSTGRES_DB: project
    POSTGRES_USER: project
    POSTGRES_PASSWORD: project

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读