在 docker 容器内监控 PostgreSQL 运行 的正确方法
Proper way to monitor PostgreSQL running inside a docker container
我是 运行 一个 docker 容器 CentOS 7 + PostgreSQL 9.4。使用 this docker image.
因此,在拉取镜像后,我按照说明创建了容器,并公开了 PostgreSQL 端口 5432。
当然,我可以在我的容器中执行 shell,方法是
docker exec -it CONTAINER_NAME /bin/bash
之后,我登录为 postgres 用户。但是我需要安装更多软件(基本上是 postgres 相关的东西,或者一些命令行工具)。
编辑:例如,我需要安装 lsof 工具(在 CentOS 7 中默认不可用,可以使用 yum install lsof 安装)。
所以,我需要一个能够安装软件的不同用户。除非...
我做事的方式不对,我真正需要的是另一个容器来监控 PostgreSQL。或者甚至使用 我的主机 (Mac OS X)。但是然后... 我如何使用像 lsof 或 htop 这样的命令?为此,我需要位于运行 PostgreSQL 的同一个容器中。
我说得对吗?
好的,这很简单
docker exec -it -u root CONTAINER_NAME /bin/bash -c "yum install lsof"
我是 运行 一个 docker 容器 CentOS 7 + PostgreSQL 9.4。使用 this docker image.
因此,在拉取镜像后,我按照说明创建了容器,并公开了 PostgreSQL 端口 5432。
当然,我可以在我的容器中执行 shell,方法是
docker exec -it CONTAINER_NAME /bin/bash
之后,我登录为 postgres 用户。但是我需要安装更多软件(基本上是 postgres 相关的东西,或者一些命令行工具)。
编辑:例如,我需要安装 lsof 工具(在 CentOS 7 中默认不可用,可以使用 yum install lsof 安装)。
所以,我需要一个能够安装软件的不同用户。除非...
我做事的方式不对,我真正需要的是另一个容器来监控 PostgreSQL。或者甚至使用 我的主机 (Mac OS X)。但是然后... 我如何使用像 lsof 或 htop 这样的命令?为此,我需要位于运行 PostgreSQL 的同一个容器中。
我说得对吗?
好的,这很简单
docker exec -it -u root CONTAINER_NAME /bin/bash -c "yum install lsof"