{"id":41502,"date":"2023-01-06T05:47:58","date_gmt":"2023-02-27T17:14:46","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/"},"modified":"2024-01-15T11:00:20","modified_gmt":"2024-01-15T03:00:20","slug":"%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/","title":{"rendered":"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6"},"content":{"rendered":"<p>\u5728RHEL\u4e0a\u521b\u5efa\u4e00\u4e2aPostgreSQL\u7684Docker\u5bb9\u5668\u3002<br \/>\n\u53ea\u8981\u662f\u5f00\u53d1\u76ee\u7684\uff0c\u5c31\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528Red Hat Enterprise Linux\u3002<br \/>\nhttps:\/\/redhat.sios.jp\/red-hat-developer-program<\/p>\n<p>\u6211\u60f3\u5229\u7528\u8fd9\u4e2a\u6765\u5728RHEL\u4e0a\u521b\u5efa\u4e00\u4e2a\u5b89\u88c5\u4e86PostgreSQL\u7684Docker\u955c\u50cf\u3002<br \/>\n\u8bf7\u53c2\u8003\u4e0a\u8ff0\u6587\u7ae0\u4ee5\u8fdb\u884c\u5f00\u53d1\u8005\u8ba1\u5212\u7684\u6ce8\u518c\u3002<\/p>\n<p>\u4e3a\u4e86\u4f5c\u4e3aintra-mart\u7684\u9a8c\u8bc1\u76ee\u7684\uff0c\u6211\u4eec\u5c06\u63d0\u524d\u6267\u884cintra-mart\u8981\u6c42\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\u4e00\u6765\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u7acb\u5373\u521b\u5efa\u4e00\u4e2a\u53ef\u7528\u4e8e\u9a8c\u8bc1\u7684PostgreSQL 9.6\u73af\u5883\uff0c\u800c\u65e0\u9700\u8003\u8651\u5176\u4ed6\u4e8b\u9879\uff0c\u53ea\u9700\u8fd0\u884cdocker\u547d\u4ee4\u5373\u53ef\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">FROM<\/span><span class=\"s\"> registry.access.redhat.com\/rhel7.6<\/span>\r\n\r\n<span class=\"k\">EXPOSE<\/span><span class=\"s\"> 22 5432<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> DEBIAN_FRONTEND noninteractive<\/span>\r\n\r\n<span class=\"c\"># subscription<\/span>\r\n<span class=\"k\">COPY<\/span><span class=\"s\"> subscribe_rhel.sh \/subscribe_rhel.sh<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nb\">chmod<\/span> +x \/subscribe_rhel.sh <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> \/subscribe_rhel.sh\r\n\r\n<span class=\"c\"># yum<\/span>\r\n<span class=\"k\">RUN <\/span>yum <span class=\"nt\">-y<\/span> update <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum provides <span class=\"nt\">-y<\/span> <span class=\"s1\">'*\/applydeltarpm'<\/span> <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum groupinstall <span class=\"nt\">-y<\/span> <span class=\"s1\">'Development Tools'<\/span> <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> initscripts curl <span class=\"nb\">tar <\/span>unzip mlocate openssh-server openssl-devel <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum localinstall <span class=\"nt\">-y<\/span> https:\/\/download.postgresql.org\/pub\/repos\/yum\/9.6\/redhat\/rhel-7-x86_64\/pgdg-redhat96-9.6-3.noarch.rpm <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> postgresql96-server epel-release multitail ncurses-devel ncurses-static ncurses-term <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">rm<\/span> <span class=\"nt\">-rf<\/span> \/var\/cache\/yum\/<span class=\"k\">*<\/span> <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> yum clean all\r\n\r\n<span class=\"c\"># locale<\/span>\r\n<span class=\"k\">RUN <\/span>yum reinstall <span class=\"nt\">-y<\/span> glibc-common <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> localedef <span class=\"nt\">-i<\/span> ja_JP <span class=\"nt\">-f<\/span> UTF-8 ja_JP.utf8 <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">touch<\/span> \/etc\/sysconfig\/i18n <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'LANG=\"ja_JP.UTF-8\"'<\/span> <span class=\"o\">&gt;&gt;<\/span> \/etc\/sysconfig\/i18n <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'LANG=\"ja_JP.UTF-8\"'<\/span> <span class=\"o\">&gt;<\/span> \/etc\/locale.conf\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> LANG ja_JP.UTF-8<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> LC_ALL ja_JP.UTF-8<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> LANGUAGE ja_JP:ja<\/span>\r\n\r\n<span class=\"c\"># timezone<\/span>\r\n<span class=\"k\">RUN <\/span>yum <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> tzdata <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'ZONE=\"Asia\/Tokyo\"'<\/span> <span class=\"o\">&gt;<\/span> \/etc\/sysconfig\/clock <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">echo<\/span> <span class=\"s1\">'UTC=false'<\/span> <span class=\"o\">&gt;&gt;<\/span> \/etc\/sysconfig\/clock <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">ln<\/span> <span class=\"nt\">-sf<\/span> \/usr\/share\/zoneinfo\/Asia\/Tokyo \/etc\/localtime\r\n\r\n<span class=\"c\"># root passwd<\/span>\r\n<span class=\"k\">RUN <\/span>bash <span class=\"nt\">-c<\/span> <span class=\"s1\">'echo \"root:password\" | chpasswd'<\/span>\r\n\r\n<span class=\"c\"># ssh<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/#PasswordAuthentication yes\/PasswordAuthentication yes\/g\"<\/span> \/etc\/ssh\/sshd_config <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/#PermitRootLogin yes\/PermitRootLogin yes\/g\"<\/span> \/etc\/ssh\/sshd_config <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/UsePAM yes\/UsePAM no\/g\"<\/span> \/etc\/ssh\/sshd_config\r\n\r\n<span class=\"c\"># PostgreSQL<\/span>\r\n<span class=\"k\">COPY<\/span><span class=\"s\"> setup_postgresql.sh \/setup_postgresql.sh<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nb\">chmod<\/span> +x \/setup_postgresql.sh <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> \/setup_postgresql.sh <span class=\"se\">\\\r\n<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">rm<\/span> <span class=\"nt\">-f<\/span> \/setup_postgresql.sh\r\n\r\n<span class=\"k\">COPY<\/span><span class=\"s\"> run.sh \/run.sh<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nb\">chmod<\/span> +x \/run.sh\r\n\r\n<span class=\"k\">RUN <\/span>updatedb\r\n\r\n<span class=\"k\">CMD<\/span><span class=\"s\"> [\"\/run.sh\"]<\/span>\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u65e0\u6cd5\u4f7f\u7528yum\uff0c\u56e0\u6b64\u6267\u884csubscription-manager register\u3002<br \/>\n\u8bf7\u8bbe\u7f6e\u60a8\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u4ee5\u914d\u7f6e\u60a8\u7684\u5e10\u6237\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/sh<\/span>\r\n\r\nsubscription-manager register <span class=\"nt\">--username<\/span> <span class=\"s1\">'FIXME'<\/span> <span class=\"nt\">--password<\/span> <span class=\"s1\">'FIXME'<\/span> <span class=\"nt\">--auto-attach<\/span>\r\n\r\n<span class=\"nb\">exit <\/span>0\r\n<\/code><\/pre>\n<p>\u5173\u4e8esetup_postgresql.sh\uff0c\u5728CentOS 6\/RHEL 6\u4e0a\u53ef\u4ee5\u6309\u4ee5\u4e0b\u65b9\u5f0f\u8fdb\u884c\u5b89\u88c5\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n\r\nservice postgresql-9.6 initdb\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"listen_addresses = '*'\"<\/span> <span class=\"o\">&gt;&gt;<\/span> \/var\/lib\/pgsql\/9.6\/data\/postgresql.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/ident<\/span><span class=\"nv\">$\/<\/span><span class=\"s2\">trust\/g\"<\/span> \/var\/lib\/pgsql\/9.6\/data\/pg_hba.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/127<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">1<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">32\/0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">0\/g\"<\/span> \/var\/lib\/pgsql\/9.6\/data\/pg_hba.conf\r\n\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/max_connections = 100\/max_connections = 200\/g\"<\/span> \/var\/lib\/pgsql\/9.6\/data\/postgresql.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/shared_buffers = 128MB\/shared_buffers = 512MB\/g\"<\/span> \/var\/lib\/pgsql\/9.6\/data\/postgresql.conf\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"postgres:postgres\"<\/span> | chpasswd\r\n\r\nservice postgresql-9.6 start\r\n<span class=\"nb\">sleep <\/span>1\r\n\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">ALTER USER postgres WITH PASSWORD 'postgres'<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE ROLE imart WITH LOGIN PASSWORD 'imart'<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE imart OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE iap_db OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE <\/span><span class=\"se\">\\\\\\\"<\/span><span class=\"s2\">default<\/span><span class=\"se\">\\\\\\\"<\/span><span class=\"s2\"> OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d imart -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d iap_db -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d default -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\n\r\nservice postgresql-9.6 stop\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u91cc\u7684\u95ee\u9898\u662f\u5728RHEL 7\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528\u7684\u662fsystemctl\u800c\u4e0d\u662fservice\uff0c\u4f46\u5728docker build\u4e2d\u65e0\u6cd5\u4f7f\u7528systemctl\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># service postgresql-9.6 initdb<\/span>\r\nThe service <span class=\"nb\">command <\/span>supports only basic LSB actions <span class=\"o\">(<\/span>start, stop, restart, try-restart, reload, force-reload, status<span class=\"o\">)<\/span><span class=\"nb\">.<\/span> For other actions, please try to use systemctl.\r\n<\/code><\/pre>\n<p>\u5373\u4f7f\u5f3a\u884c\u5b9e\u65bd\uff0c<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \/usr\/pgsql-9.6\/bin\/postgresql96-setup initdb<\/span>\r\nFailed to get D-Bus connection: Operation not permitted\r\nfailed to find PGDATA setting <span class=\"k\">in <\/span>postgresql-9.6.service\r\n<\/code><\/pre>\n<p>\u6709\u95ee\u9898\u7684\u5730\u65b9\u662f\u4ee5\u4e0b\u90e8\u5206\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># this parsing technique fails for PGDATA pathnames containing spaces,<\/span>\r\n<span class=\"c\"># but there's not much I can do about it given systemctl's output format...<\/span>\r\n<span class=\"nv\">PGDATA<\/span><span class=\"o\">=<\/span><span class=\"sb\">`<\/span>systemctl show <span class=\"nt\">-p<\/span> Environment <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nv\">SERVICE_NAME<\/span><span class=\"k\">}<\/span><span class=\"s2\">.service\"<\/span> |\r\n                <span class=\"nb\">sed<\/span> <span class=\"s1\">'s\/^Environment=\/\/'<\/span> | <span class=\"nb\">tr<\/span> <span class=\"s1\">' '<\/span> <span class=\"s1\">'\\n'<\/span> |\r\n                <span class=\"nb\">sed<\/span> <span class=\"nt\">-n<\/span> <span class=\"s1\">'s\/^PGDATA=\/\/p'<\/span> | <span class=\"nb\">tail<\/span> <span class=\"nt\">-n<\/span> 1<span class=\"sb\">`<\/span>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\uff0c<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/if <\/span><span class=\"se\">\\[<\/span><span class=\"s2\"> x<\/span><span class=\"se\">\\\"\\$<\/span><span class=\"s2\">PGDATA<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> = x <\/span><span class=\"se\">\\]<\/span><span class=\"s2\">; then\/PGDATA=<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">var<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">lib<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">pgsql<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">9.6<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">data<\/span><span class=\"se\">\\\/\\n<\/span><span class=\"s2\">if <\/span><span class=\"se\">\\[<\/span><span class=\"s2\"> x<\/span><span class=\"se\">\\\"\\$<\/span><span class=\"s2\">PGDATA<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> = x <\/span><span class=\"se\">\\]<\/span><span class=\"s2\">; then\/g\"<\/span> \/usr\/pgsql-9.6\/bin\/postgresql96-setup\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"k\">if<\/span> <span class=\"o\">[<\/span> x<span class=\"s2\">\"<\/span><span class=\"nv\">$PGDATA<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">=<\/span> x <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u9700\u8981\u66f4\u591a\u4e0a\u4e0b\u6587\u624d\u80fd\u5b8c\u6574\u7406\u89e3\u4f60\u7684\u95ee\u9898\u3002\u53ef\u4ee5\u63d0\u4f9b\u66f4\u591a\u7ec6\u8282\u6216\u53e5\u5b50\u5417\uff1f\u8c22\u8c22\uff01<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">PGDATA<\/span><span class=\"o\">=<\/span>\/var\/lib\/pgsql\/9.6\/data\/\r\n<span class=\"k\">if<\/span> <span class=\"o\">[<\/span> x<span class=\"s2\">\"<\/span><span class=\"nv\">$PGDATA<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">=<\/span> x <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u6cd5\u4f7f\u7528 pg_ctl \u8fdb\u884c initdb\uff0c\u800c\u4e0d\u662f\u5148\u66ff\u6362\u4e3a \/usr\/pgsql-9.6\/bin\/postgresql96-setup initdb\u3002\u8fd9\u6837\u505a\u53ef\u80fd\u4f1a\u611f\u5230\u6709\u4e9b\u5f3a\u5236\u3002<\/p>\n<pre class=\"post-pre\"><code>su postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"\/usr\/pgsql-9.6\/bin\/pg_ctl -D \/var\/lib\/pgsql\/9.6\/data initdb\"<\/span>\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\u8981\u8ba8\u8bba\u7684\u662f service start \u548c service stop \u8fd9\u4e24\u4e2a\u95ee\u9898\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># It's not recommended to modify this file in-place, because it will be<\/span>\r\n<span class=\"c\"># overwritten during package upgrades.  If you want to customize, the<\/span>\r\n<span class=\"c\"># best way is to create a file \"\/etc\/systemd\/system\/postgresql-9.6.service\",<\/span>\r\n<span class=\"c\"># containing<\/span>\r\n<span class=\"c\">#\t.include \/lib\/systemd\/system\/postgresql-9.6.service<\/span>\r\n<span class=\"c\">#\t...make your changes here...<\/span>\r\n<span class=\"c\"># For more info about custom unit files, see<\/span>\r\n<span class=\"c\"># http:\/\/fedoraproject.org\/wiki\/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F<\/span>\r\n\r\n<span class=\"c\"># Note: changing PGDATA will typically require adjusting SELinux<\/span>\r\n<span class=\"c\"># configuration as well.<\/span>\r\n\r\n<span class=\"c\"># Note: do not use a PGDATA pathname containing spaces, or you will<\/span>\r\n<span class=\"c\"># break postgresql-setup.<\/span>\r\n<span class=\"o\">[<\/span>Unit]\r\n<span class=\"nv\">Description<\/span><span class=\"o\">=<\/span>PostgreSQL 9.6 database server\r\n<span class=\"nv\">Documentation<\/span><span class=\"o\">=<\/span>https:\/\/www.postgresql.org\/docs\/9.6\/static\/\r\n<span class=\"nv\">After<\/span><span class=\"o\">=<\/span>syslog.target\r\n<span class=\"nv\">After<\/span><span class=\"o\">=<\/span>network.target\r\n\r\n<span class=\"o\">[<\/span>Service]\r\n<span class=\"nv\">Type<\/span><span class=\"o\">=<\/span>notify\r\n\r\n<span class=\"nv\">User<\/span><span class=\"o\">=<\/span>postgres\r\n<span class=\"nv\">Group<\/span><span class=\"o\">=<\/span>postgres\r\n\r\n<span class=\"c\"># Note: avoid inserting whitespace in these Environment= lines, or you may<\/span>\r\n<span class=\"c\"># break postgresql-setup.<\/span>\r\n\r\n<span class=\"c\"># Location of database directory<\/span>\r\n<span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"nv\">PGDATA<\/span><span class=\"o\">=<\/span>\/var\/lib\/pgsql\/9.6\/data\/\r\n\r\n<span class=\"c\"># Where to send early-startup messages from the server (before the logging<\/span>\r\n<span class=\"c\"># options of postgresql.conf take effect)<\/span>\r\n<span class=\"c\"># This is normally controlled by the global default set by systemd<\/span>\r\n<span class=\"c\"># StandardOutput=syslog<\/span>\r\n\r\n<span class=\"c\"># Disable OOM kill on the postmaster<\/span>\r\n<span class=\"nv\">OOMScoreAdjust<\/span><span class=\"o\">=<\/span><span class=\"nt\">-1000<\/span>\r\n<span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"nv\">PG_OOM_ADJUST_FILE<\/span><span class=\"o\">=<\/span>\/proc\/self\/oom_score_adj\r\n<span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"nv\">PG_OOM_ADJUST_VALUE<\/span><span class=\"o\">=<\/span>0\r\n\r\n<span class=\"nv\">ExecStartPre<\/span><span class=\"o\">=<\/span>\/usr\/pgsql-9.6\/bin\/postgresql96-check-db-dir <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\r\n<span class=\"nv\">ExecStart<\/span><span class=\"o\">=<\/span>\/usr\/pgsql-9.6\/bin\/postmaster <span class=\"nt\">-D<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\r\n<span class=\"nv\">ExecReload<\/span><span class=\"o\">=<\/span>\/bin\/kill <span class=\"nt\">-HUP<\/span> <span class=\"nv\">$MAINPID<\/span>\r\n<span class=\"nv\">KillMode<\/span><span class=\"o\">=<\/span>mixed\r\n<span class=\"nv\">KillSignal<\/span><span class=\"o\">=<\/span>SIGINT\r\n \r\n\r\n<span class=\"c\"># Do not set any timeout value, so that systemd will not kill postmaster<\/span>\r\n<span class=\"c\"># during crash recovery.<\/span>\r\n<span class=\"nv\">TimeoutSec<\/span><span class=\"o\">=<\/span>0\r\n\r\n<span class=\"o\">[<\/span>Install]\r\n<span class=\"nv\">WantedBy<\/span><span class=\"o\">=<\/span>multi-user.target\r\n<\/code><\/pre>\n<p>\u57fa\u4e8e\u8fd9\u6837\u7684\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u542f\u52a8\/\u5173\u95ed\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u8d77\u52d5<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"PG_OOM_ADJUST_FILE=\/proc\/self\/oom_score_adj; PG_OOM_ADJUST_VALUE=0; \/usr\/pgsql-9.6\/bin\/pg_ctl -D \/var\/lib\/pgsql\/9.6\/data -l \/var\/lib\/pgsql\/9.6\/data\/pg_log\/postgresql.log start\"<\/span>\r\n<span class=\"c\"># \u7d42\u4e86<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"\/usr\/pgsql-9.6\/bin\/pg_ctl -D \/var\/lib\/pgsql\/9.6\/data stop\"<\/span>\r\n<\/code><\/pre>\n<p>\u603b\u7ed3\u8d77\u6765\uff0c\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n\r\n<span class=\"nb\">export <\/span><span class=\"nv\">PGSQL<\/span><span class=\"o\">=<\/span>\/usr\/pgsql-9.6\r\n<span class=\"nb\">export <\/span><span class=\"nv\">PGDATA<\/span><span class=\"o\">=<\/span>\/var\/lib\/pgsql\/9.6\/data\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nv\">PGSQL<\/span><span class=\"k\">}<\/span><span class=\"s2\">\/bin\/pg_ctl -D <\/span><span class=\"nv\">$PGDATA<\/span><span class=\"s2\"> initdb\"<\/span>\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"listen_addresses = '*'\"<\/span> <span class=\"o\">&gt;&gt;<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\/postgresql.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/ident<\/span><span class=\"nv\">$\/<\/span><span class=\"s2\">trust\/g\"<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\/pg_hba.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/127<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">1<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">32\/0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\.<\/span><span class=\"s2\">0<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">0\/g\"<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\/pg_hba.conf\r\n\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/max_connections = 100\/max_connections = 200\/g\"<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\/postgresql.conf\r\n<span class=\"nb\">sed<\/span> <span class=\"nt\">-i<\/span> <span class=\"nt\">-e<\/span> <span class=\"s2\">\"s\/shared_buffers = 128MB\/shared_buffers = 512MB\/g\"<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span>\/postgresql.conf\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"postgres:postgres\"<\/span> | chpasswd\r\n\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"mkdir -p <\/span><span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span><span class=\"s2\">\/pg_log\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"PG_OOM_ADJUST_FILE=\/proc\/self\/oom_score_adj; PG_OOM_ADJUST_VALUE=0; <\/span><span class=\"k\">${<\/span><span class=\"nv\">PGSQL<\/span><span class=\"k\">}<\/span><span class=\"s2\">\/bin\/pg_ctl -D <\/span><span class=\"nv\">$PGDATA<\/span><span class=\"s2\"> -l <\/span><span class=\"k\">${<\/span><span class=\"nv\">PGDATA<\/span><span class=\"k\">}<\/span><span class=\"s2\">\/pg_log\/postgresql.log start\"<\/span>\r\n<span class=\"nb\">sleep <\/span>2\r\n\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">ALTER USER postgres WITH PASSWORD 'postgres'<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE ROLE imart WITH LOGIN PASSWORD 'imart'<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE imart OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE iap_db OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE DATABASE <\/span><span class=\"se\">\\\\\\\"<\/span><span class=\"s2\">default<\/span><span class=\"se\">\\\\\\\"<\/span><span class=\"s2\"> OWNER=imart encoding 'utf8' TEMPLATE template0<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d imart -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d iap_db -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"psql -d default -c <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">CREATE SCHEMA acceldocuments AUTHORIZATION imart<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">\"<\/span>\r\n\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nv\">PGSQL<\/span><span class=\"k\">}<\/span><span class=\"s2\">\/bin\/pg_ctl -D <\/span><span class=\"nv\">$PGDATA<\/span><span class=\"s2\"> stop\"<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n\r\n\/subscribe_rhel.sh\r\n\/usr\/sbin\/sshd-keygen\r\n\/usr\/sbin\/sshd\r\nsu postgres <span class=\"nt\">-c<\/span> <span class=\"s2\">\"PG_OOM_ADJUST_FILE=\/proc\/self\/oom_score_adj; PG_OOM_ADJUST_VALUE=0; \/usr\/pgsql-9.6\/bin\/pg_ctl -D \/var\/lib\/pgsql\/9.6\/data restart\"<\/span>\r\n\r\nmultitail <span class=\"nt\">-M<\/span> 0 <span class=\"nt\">--follow-all<\/span> <span class=\"nt\">--retry-all<\/span> <span class=\"nt\">-q<\/span> 1 <span class=\"s2\">\"\/var\/lib\/pgsql\/9.6\/data\/pg_log\/*.log\"<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u5efa\u7acb(build)\u3002<\/p>\n<pre class=\"post-pre\"><code>docker build <span class=\"nt\">-t<\/span> mypostgresql:9.6 <span class=\"nb\">.<\/span>\r\n<\/code><\/pre>\n<h1>\u6253\u5f00<\/h1>\n<pre class=\"post-pre\"><code>docker run <span class=\"nt\">-itd<\/span> <span class=\"nt\">-p<\/span> 5432:5432 <span class=\"nt\">-p<\/span> 2222:22 mypostgresql:9.6\r\n<\/code><\/pre>\n<h1>SSH<\/h1>\n<pre class=\"post-pre\"><code>ssh <span class=\"nt\">-p<\/span> 2222 root@localhost\r\n<\/code><\/pre>\n<p>\u5982\u679c\u5728docker run\u547d\u4ee4\u4e2d\u4f7f\u7528\u4e86-p 2222:22\u9009\u9879\uff0c\u90a3\u4e482222\u5c31\u662fSSH\u7684\u7aef\u53e3\u3002<br \/>\n\u60a8\u53ef\u4ee5\u4f7f\u7528root\/password\u767b\u5f55\u3002<br \/>\n\u8bf7\u5c06localhost\u66ff\u6362\u4e3a\u6b63\u5728\u8fd0\u884cdocker\u7684\u8ba1\u7b97\u673a\u7684IP\u5730\u5740\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u6211\u5011\u7c21\u55ae\u4ecb\u7d39\u4e86\u70baintra-mart\u6e96\u5099\u7684\u5df2\u914d\u7f6e\u7684PostgreSQL 9.6 Docker\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728RHEL\u4e0a\u521b\u5efa\u4e00\u4e2aPostgreSQL\u7684Docker\u5bb9\u5668\u3002 \u53ea\u8981\u662f\u5f00\u53d1\u76ee\u7684\uff0c\u5c31\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528Red Hat E [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-41502","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u521b\u5efa\u8fd0\u884c\u5728-rhel-\u7cfb\u7edf\u4e0a\u7684-docker-\u5bb9\u5668\u4e2d\u7684-postgresql-9-6\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6\" \/>\n<meta property=\"og:description\" content=\"\u5728RHEL\u4e0a\u521b\u5efa\u4e00\u4e2aPostgreSQL\u7684Docker\u5bb9\u5668\u3002 \u53ea\u8981\u662f\u5f00\u53d1\u76ee\u7684\uff0c\u5c31\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528Red Hat E [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u521b\u5efa\u8fd0\u884c\u5728-rhel-\u7cfb\u7edf\u4e0a\u7684-docker-\u5bb9\u5668\u4e2d\u7684-postgresql-9-6\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-27T17:14:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-15T03:00:20+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/\",\"name\":\"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-27T17:14:46+00:00\",\"dateModified\":\"2024-01-15T03:00:20+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u521b\u5efa\u8fd0\u884c\u5728-rhel-\u7cfb\u7edf\u4e0a\u7684-docker-\u5bb9\u5668\u4e2d\u7684-postgresql-9-6\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6","og_description":"\u5728RHEL\u4e0a\u521b\u5efa\u4e00\u4e2aPostgreSQL\u7684Docker\u5bb9\u5668\u3002 \u53ea\u8981\u662f\u5f00\u53d1\u76ee\u7684\uff0c\u5c31\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528Red Hat E [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u521b\u5efa\u8fd0\u884c\u5728-rhel-\u7cfb\u7edf\u4e0a\u7684-docker-\u5bb9\u5668\u4e2d\u7684-postgresql-9-6\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-27T17:14:46+00:00","article_modified_time":"2024-01-15T03:00:20+00:00","author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/","name":"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-27T17:14:46+00:00","dateModified":"2024-01-15T03:00:20+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u521b\u5efa\u8fd0\u884c\u5728 RHEL \u7cfb\u7edf\u4e0a\u7684 Docker \u5bb9\u5668\u4e2d\u7684 PostgreSQL 9.6"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%88%9b%e5%bb%ba%e8%bf%90%e8%a1%8c%e5%9c%a8-rhel-%e7%b3%bb%e7%bb%9f%e4%b8%8a%e7%9a%84-docker-%e5%ae%b9%e5%99%a8%e4%b8%ad%e7%9a%84-postgresql-9-6%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/41502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=41502"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/41502\/revisions"}],"predecessor-version":[{"id":58850,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/41502\/revisions\/58850"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=41502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=41502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=41502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}