docker postgres

https://hub.docker.com/_/postgres/

https://segmentfault.com/a/1190000004518306

docker run --name postgres-slave \
--privileged=true \
-v /home/docker/postgres/data:/home/data/ \
-v /home/docker/postgres/conf:/var/lib/postgresql/data \
-e POSTGRES_USER=xxx \
-e POSTGRES_PASSWORD=xxxxxxxx \
-d -p 15432:5432 postgres

 

docker run --name postgres --privileged=true -v /home/docker/postgres/data:/home/data/ -v /home/docker/postgres/conf:/var/lib/postgresql/data -e POSTGRES_USER=xxx -e POSTGRES_PASSWORD=xxx -d -p 5432:5432 postgres

 

-e TZ=“Asia/Shanghai” -v /etc/localtime:/etc/localtime都是用来解决容器时区的问题

其中 --name your-postgresql 指的是你的postgresql容器的名字,

 --restart=always 停止后自动启动

注:必须指定POSTGRES_PASSWORD(指定超级用户密码)

如果提示ls: cannot access '/docker-entrypoint-initdb.d/': Operation not permitted

原因是CentOS7中的安全模块selinux把权限禁掉了

在运行容器的时候,给容器加特权,及加上 --privileged=true

 

-v /var/docker/postgres/data:/home/data/的意思是-v 你电脑上的目录/你容器内的目录:

~/Docker/your-postgresql/data是我linux系统存放.sql文件方便容器读取的目录;

/home/data是postgresql容器自带的目录,

这样设置是为了避免权限导致出错,postgresql容器有些目录是只读的,无法写入文件。

如果配错了目录映射会在你想要进行数据库备份、导入/导出时遇到报错:Read-only file system

-e POSTGRES_PASSWORD=xxxxxx的意思是你的数据库密码;

-p 5432:5432 是映射端口;

配置后可以通过5432端口远程连接电脑的5432端口链接到postgresql容器。

修改远程管理配置
vi /var/docker/postgresql/data/pg_hba.conf

posted @ 2018-06-28 17:38  stone8386  阅读(1086)  评论(0编辑  收藏  举报