【问题标题】:how to troubleshoot PostgreSQL Docker setup on Linux如何对 Linux 上的 PostgreSQL Docker 设置进行故障排除
【发布时间】:2019-02-08 22:40:10
【问题描述】:

我能够运行 2 个 docker 容器。我可以看到它们正在运行,但我没有看到实际的服务。

我按照here 的步骤设置了一个新的 postgresql 实例,我可以看到它启动并运行:

[vagrant@localhost dev]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                                     NAMES
fe1fd9c362a2        dpage/pgadmin4      "/entrypoint.sh"         15 hours ago        Up 15 hours               80/tcp, 443/tcp, 0.0.0.0:5050->5050/tcp   awesome_yonath
e2dc95062de8        dpage/pgadmin4      "/entrypoint.sh"         15 hours ago        Exited (0) 15 hours ago                                             zealous_boyd
f516085ac3e1        dpage/pgadmin4      "/entrypoint.sh"         15 hours ago        Exited (0) 15 hours ago                                             vibrant_noether
a01d9ec38f17        postgres            "docker-entrypoint.s…"   16 hours ago        Up 16 hours               0.0.0.0:5432->5432/tcp                    pg-docker

但是,当我尝试使用任何 postgres 命令并运行 top 时,我看不到该服务。

[vagrant@localhost dev]$ psql
bash: psql: command not found...
[vagrant@localhost dev]$ postgres
bash: postgres: command not found...

试图弄清楚我是否需​​要手动启动服务,或者如何解决这个问题

我的设置脚本:

mkdir -p $HOME/docker/volumes/postgres
docker pull postgres:9.6.11
docker run --rm --name pg-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data  postgres

【问题讨论】:

    标签: linux postgresql docker redhat


    【解决方案1】:

    如果我理解正确,您可以在 Vagrant 机器中作为主机运行 PostgreSql docker 容器。您无法从主机看到容器中运行的进程。您可以在容器内运行交互式 shell 以查看 PostgreSql 服务器进程、运行顶部等。像这样的:

    docker exec -it  <pg-container-id> bash
    

    docker exec <pg-container-id> ps
    

    列出进程。

    希望对你有帮助。

    【讨论】:

    • 我是一个拥有这些东西的新手,所以可能仍然缺少一些东西:) 但我尝试了这些命令。出现这样的错误:OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown
    • 如果图像的名称是 postgres,请尝试docker run -it postgres /bin/bash(或docker exec -it &lt;container_id&gt; /bin/bash)。 This 也可能有帮助。
    • @SonicSoul 我遇到了同样的问题。后来我发现我执行这个命令的容器不是 postgres 容器。确保确认您在哪个容器上运行它。
    猜你喜欢
    • 2019-08-12
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多