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"]