赞
踩
docker pull postgres
docker run -it --name postgres --restart always -e POSTGRES_PASSWORD='abc123' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -p 55433:5432 -d postgres
–name : 自定义容器名称
POSTGRES_PASSWORD:数据库密码
-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了
-v :进行映射,本地目录:容器内路径
-p:映射端口,宿主机端口:容器端口
最后是 镜像名称:端口号
docker exec -it postgres bash
将当前root切换成postgres
su postgres
输入用户名,密码再命令执行完后,再根据提示输入
psql -U postgres -W
输入密码,登录成功
共需要修改两个配置文件:pg_hba.conf、postgresql.conf,步骤分别如下:
首先,确认已进入容器,再按下列步骤操作:
docker cp postgres:/var/lib/postgresql/data/pg_hba.conf /home
# 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
如上述修改pg_hba.conf一样,先复件到/home文件夹中,然后打开编辑,最后替换掉原配置文件。
定位到 #listen_addresses = ’localhost’,再将行开头都#去掉,并将行内容修改为 localhost 改成:*
listen_addresses = ’*’
默认只接受来自本机localhost的连接请求,* 允许数据库服务器监听来自任何主机的连接请求。
首先,执行exit命令,退出postgres用户,再执行一次exit,退出容器。然后才可以进行防火墙设置。
systemctl status firewalld
若未启动,则执行启动命令:
systemctl start firewalld
firewall-cmd --state
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
重启防火墙
systemctl stop firewalld.service
systemctl start firewalld.service
至此,postgresql数据库安装完成,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。