日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker部署訪問postgres數據庫的實現方法_docker

作者:_七里香 ? 更新時間: 2022-05-22 編程語言

部署與訪問

宿主機創建postgres用戶:

adduser postgres

拉取鏡像,此處以12.1版本為例:

docker pull postgres:12.1

創建所用的卷

docker volume create pgdata_test_env

啟動(密碼為123456):

docker run --user=0  -p 45565:5432 -d --name pg_test --restart always \
-v pgdata_test_env:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=123456  \
postgres:12.1

訪問pg,進入容器(注意需要用postgres 用戶):

docker exec -ti -u postgres pg_test bash
psql

啟用日志

  • show log_destination; ? 查看日志記錄類型,未開啟時顯示off
  • show log_directory; ? ? 查看日志路徑

啟用日志:alter system set logging_collector='on'; ? 重啟pg容器。

如果需要修改pg配置

首先查看docker root地址:

執行docker info,找Docker Root
Docker Root Dir: /opt/docker

進入卷內部:

cd /opt/docker/volumes/pgdata_test_env/_data
postgresql.conf就是配置文件,修改完后重啟pg即可

重啟pg

重啟方式有兩種:

方法1:docker restart pg_test
 
方法2:進入容器,
docker exec -ti -u postgres pg_test bash
cd /var/lib/postgresql/data
pg_ctl restart
即可重啟成功

代碼&外部連接時注意(溫馨提示)

訪問時兩種形式皆可:
1,使用容器Ip和映射的容器內端口
2,使用宿主機ip和映射的宿主機端口
如果使用第二種時如果出現以下兩種類似的連不上pg的報錯:
read: connection reset by peer ? ? 或
i/o timeout
但進入容器使用pg正常,這就需要排查網絡層面的問題,如端口是否開放,如果你有這方面的未決問題可以提出來,我幫你解決哦

原文鏈接:https://lan6193.blog.csdn.net/article/details/122088367

欄目分類
最近更新