docker安装postgresql

查询postgresql镜像

docker search postgres

在这里插入图片描述

NAME                  --镜像名称
DESCRIPTION    --镜像描述
STARS                 --标星数
OFFICIAL             --官方的
AUTOMATED      -- 自动化

拉去镜像文件

docker pull postgres:12.3

制作容器

docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /home/postgresql/pgdata:/var/lib/postgresql/data -d postgres:12.3
run :创建并运行一个容器;
–name :指定容器名称。(容器名称 自己设置)
-e POSTGRES_PASSWORD=password,设置环境变量,指定数据库的登录口令为password(password 自己设置)
-p :指定宿主机和 Docker 容器端口映射,冒号前为宿主机端口号,另一个是容器端口号。(Docker的容器默认情况下只能由本地主机访问,即A主机上的容器不能被B主机访问,所以要做端口映射)(端口号 自己设置)
-d postgres:12.3:指定使用postgres:12.3作为镜像

查看容器

在这里插入图片描述

进入容器创建角色

docker exec -it e43e247b1ed4 bash

切换用户

su postgres

在这里插入图片描述

创建sonar用户

docker安装postgresql_第1张图片

链接

psql

docker安装postgresql_第2张图片

创建sonar数据库

create database sonar owner=sonar;

在这里插入图片描述

查看数据库

\l

docker安装postgresql_第3张图片
至此,sonar用户与数据库均已创建成功,并且数据库中的数据持久化在宿主机中,方便下次访问及做备份。

可视化链接工具

客户端连接(DBeaver)

链接一下

docker安装postgresql_第4张图片
远程链接报错:
docker安装postgresql_第5张图片

Connection to 120.48.54.67:5040 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
  Connection refused: connect
  Connection refused: connect

这语句翻译下,用户名密码是正确的,但是tcp/ip的连接失败了。这个解决方法其实就是去建立tcp/ip连接过程。
原因是宿主机并没有监听其他的主机接口,因此没有建立连接。

修改配置文件:
进入postgres容器内部 修改/var/lib/pgsql/9.6/data/postgresql.conf (也可以修改挂载目录里面的文件)
新增listen_addresses = ‘*’
#what IP address(es) to listen on
#默认 listen_addresses = ‘localhost’

docker安装postgresql_第6张图片
链接成功!

你可能感兴趣的:(数据库,docker,k8s,harbor,gitlab,docker,postgresql,容器)