使用Docker搭建Postgresql數(shù)據(jù)庫垒手,及設(shè)置遠(yuǎn)程訪問
一秉扑、拉取Postgresq鏡像
docker pull postgres
二稿湿、構(gòu)建鏡像容器
docker run -it --name postgress --restart always -e TZ='Asia/Shanghai' -e POSTGRES_PASSWORD='abc123' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -p 55435:5432 -d postgres
–name : 自定義容器名稱
--restart always 此處設(shè)置容器在docker 重啟時自動啟動容器
POSTGRES_PASSWORD:數(shù)據(jù)庫密碼
-e ALLOW_IP_RANGE=0.0.0.0/0辫愉,這個表示允許所有ip訪問顽决,如果不加窍仰,則非本機(jī) ip 訪問不了, 此處這樣設(shè)置下面的第五步就可以省略
-e TZ='Asia/Shanghai' 設(shè)置時區(qū),此處設(shè)置就不需要修改配置文件了,
-v :進(jìn)行映射,本地目錄:容器內(nèi)路徑
-p:映射端口,宿主機(jī)端口:容器端口
最后是 鏡像名稱:端口號
三汉规、進(jìn)入postgres容器
docker exec -it postgres bash
四、切換當(dāng)前用戶驹吮,再登錄數(shù)據(jù)庫
將當(dāng)前root切換成postgres
su postgres
輸入用戶名针史,密碼再命令執(zhí)行完后,再根據(jù)提示輸入
psql -U postgres -W
輸入密碼碟狞,登錄成功
經(jīng)過我的實(shí)踐,docker pull的已經(jīng)可以支持遠(yuǎn)程連接了,不需要在進(jìn)行下面的步驟,請酌情考慮進(jìn)行下面的步驟
五啄枕、設(shè)置遠(yuǎn)程訪問許可(很重要)
共需要修改兩個配置文件:pg_hba.conf、postgresql.conf族沃,步驟分別如下:
1频祝、修改postgres配置文件
首先,確認(rèn)已進(jìn)入容器竭业,再按下列步驟操作:
1)智润、修改pg_hba.conf文件
A、用命令將postgres中的pg_hba.conf文件未辆,復(fù)制到目錄/home中
docker cp postgres:/var/lib/postgresql/data/pg_hba.conf /home
1
B窟绷、用Xftp連接服務(wù)器,找到home下的pg_hba.conf咐柜,并用記事本打開及修改用戶的訪問權(quán)限(#開頭的行是注釋內(nèi)容):
# TYPE DATABASE? USER? ? CIDR-ADDRESS? ? METHOD
# "local" is for Unix domain socket connections only
local all? ? all? ? ? ? ? ? ? trust
# IPv4 local connections:
host? all? ? all? ? 127.0.0.1/32? ? trust
*host? all? ? all? ? 0.0.0.1/0? ? md5*
# IPv6 local connections:
host? all? ? all? ? ::1/128? ? ? trust
####C兼蜈、用命令將修改后的文件,替換掉原來的配置文件
docker cp /home/pg_hba.conf postgres:/var/lib/postgresql/data
2)拙友、修改postgresql.conf文件
如上述修改pg_hba.conf一樣为狸,先復(fù)件到/home文件夾中,然后打開編輯遗契,最后替換掉原配置文件辐棒。
定位到 #listen_addresses = ’localhost’,再將行開頭都#去掉,并將行內(nèi)容修改為 localhost 改成:*
listen_addresses = ’*’