1.容器内的postgres用户无权读取宿主机上postgres用户的data文件夹(VOLUME /var/lib/pgsql/9.5/data)。html
缘由:宿主机开了SELinuxsql
方案:暂时关掉setenforce 0。docker
2.pgsql认为宿主机上的postgresql.conf有坏的参数lc_messages = 'zh_CN.UTF-8'。bash
缘由:docker的CentOS7镜像作了不少的清理工做来保障镜像体积不那么大,它删掉了中文环境的locale.post
方案:连时间带locale都解决了。postgresql
RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN yum -y reinstall glibc-common RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 ENV LC_ALL zh_CN.utf8
3.docker run -d 的时候,pg_ctl不太坚挺,执行完当即返回了,容器就中止运行了。code
方案:直接用postgres来启动。htm
ENTRYPOINT ["/usr/pgsql-9.5/bin/postgres","-D","/var/lib/pgsql/9.5/data"]