源码库
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;
- 查看创建后的数据库
`
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