源码库

https://github.com/docker-library/postgres

Docker Hub

https://hub.docker.com/search?q=postgres

二、Docker 中 PostgreSQL 安装

从在线存储库下载 PostgreSQL Docker 镜像(docker images 可列出安装在系统上的 Docker 镜像)。本次指定版本为 12.3

$ docker pull postgres:15.2

$ docker images 

下载 PostgreSQL Docker 镜像

2. 创建本地卷

数据卷可以在容器之间共享和重用, 默认会一直存在,即使容器被删除(docker volume inspect pgdata可查看数据卷的本地位置,验证持久数据目录)

$ docker volume create pgdata

$ docker volume inspect pgdata

创建本地卷

输出的内容

[
    {
        "CreatedAt": "2021-11-17T14:37:23+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/pgdata/_data",
        "Name": "pgdata",
        "Options": {},
        "Scope": "local"
    }
]

3. 启动容器,使用持久数据存储启动 PostgreSQL 容器

启动时,需要将刚上个步骤创建的卷pgdata挂载到容器的/var/lib/postgresql/data目录。

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

docker run --name postgres12 -e POSTGRES_PASSWORD=password -p 5040:5040 -v pgdata:/var/lib/postgresql/data -d postgres:12.3

启动容器,使用持久数据存储启动 PostgreSQL 容器

容器名称:postgres12
新容器正在使用本地端口:5040
容器 ID : 5e70926396a**800。
配置的 PostgreSQL 密码: ***

###4. 验证持久数据目录的内容。

sudo ls /var/lib/docker/volumes/pgdata/_data

验证持久数据目录的内容。

至此,已完成了 Ubuntu Linux 上的 PostgreSQL Docker 安装。

且成功配置了 Docker 持久数据存储的使用。

如果想要搭建SonarQube ,可以继续看如何创建sonar用户。

三、进入容器创建角色

进入容器。新开一个 Terminal 进入容器

查看容器 ID

$ docker ps


$ docker exec -it postgres12 /bin/bash

新开一个 Terminal 进入容器

2. 切换到postgres用户

su postgres

3. 创建sonar用户(一个新角色,可用于代码质量检测)

createuser -P -s -e sonar

4. 连接数据库

psql

####5. 创建sonar数据库


create database sonar owner=sonar;

  1. 查看创建后的数据库
    `asp

\l


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



### 四、附加:教程 PostgreSQL - Docker 容器管理
#### 验证所有 Docker 保护器的状态
```asp
docker ps -a

验证所有 Docker 保护器的状态

2. 使用 ID 或名称验证 PostgreSQL 容器的状态

docker ps -a -f id=5e70926396a3
或
docker ps -a -f name=postgres12

使用 ID 或名称验证 PostgreSQL 容器的状态

3. 要停止 PostgreSQL 容器服务,请使用以下命令:


docker container stop 5e70926396a3
或
docker container stop postgres12

4. 要启动 PostgreSQL 容器服务,请使用以下命令:

docker container start 5e70926396a3
或
docker container start postgres12

5. 若要重新启动 PostgreSQL 容器服务,请使用以下命令:

docker container restart 5e70926396a3
或
docker container restart postgres12

6. 如果出现错误,请使用以下命令验证 PostgreSQL 容器日志。


docker logs 5e70926396a3
或
docker logs postgres12
文档更新时间: 2023-03-09 19:48   作者:admin