首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能使用“服务邮政启动”在码头启动postgres?

为什么不能使用“服务邮政启动”在码头启动postgres?
EN

Stack Overflow用户
提问于 2014-02-20 04:30:08
回答 2查看 5.5K关注 0票数 1

所有的教程都指出了以

代码语言:javascript
复制
docker run -d -p 5432 \
  -t <your username>/postgresql \
  /bin/su postgres -c '/usr/lib/postgresql/9.2/bin/postgres \
    -D /var/lib/postgresql/9.2/main \
    -c config_file=/etc/postgresql/9.2/main/postgresql.conf'

为什么我们的码头档案里不能有:

代码语言:javascript
复制
ENTRYPOINT ["/etc/init.d/postgresql-9.2", "start"]

然后简单地启动容器

代码语言:javascript
复制
docker run -d psql

这不是入口点的目的还是我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-20 05:16:44

区别在于,/etc/init.d中提供的init脚本不是入口点。它的目的是完全不同的;让入口点开始,在后台,然后向调用者报告成功或失败。该脚本导致postgres进程(通常通过pg_ctl间接启动)与控制终端分离。

要使对接器最佳工作,它需要直接运行应用程序,并附加到对接进程。这样,当用户请求时,它就可以有效地、通用地终止它,或者快速发现并响应进程崩溃。

票数 2
EN

Stack Overflow用户

发布于 2014-09-08 17:18:41

这就是IfLoop所说的例子。

在Dockerfiles中使用CMD:

代码语言:javascript
复制
USE postgres 
CMD ["/usr/lib/postgresql/9.2/bin/postgres", "-D", "/var/lib/postgresql/9.2/main", "-c", "config_file=/etc/postgresql/9.2/main/postgresql.conf"]

跑:

代码语言:javascript
复制
$docker run -d -p 5432:5432 psql

观看PostgeSQL日志:

代码语言:javascript
复制
$docker logs -f POSTGRES_CONTAINER_ID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21898152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档