0


Docker 安装 PostgreSQL

1. 安装 Docker 和 Docker Compose

首先,确保你的服务器上已经安装了 Docker 和 Docker Compose。你可以通过以下命令检查它们是否安装:

docker --version
docker-compose --version

2. 创建项目目录

在你的服务器上创建一个用于存放 PostgreSQL Docker Compose 配置的目录,例如

my-project

mkdir my-project
cd my-project

3. 创建

docker-compose.yml

文件

my-project

目录中创建一个名为

docker-compose.yml

的文件,用于定义 PostgreSQL 服务:

nano docker-compose.yml

将以下内容粘贴到文件中:

version:'3.8'services:postgres:# 定义服务名称为 postgresimage: postgres:14# 使用 PostgreSQL14 镜像container_name: postgres           # 设置容器名称为 postgresrestart: always                    # 配置容器总是自动重启environment:POSTGRES_DB: mydatabase          # 定义要创建的数据库名称为 mydatabasePOSTGRES_USER: root              # 定义 PostgreSQL 数据库的用户名为 wqgPOSTGRES_PASSWORD:123456# 定义数据库用户的密码ports:-"5432:5432"# 将容器的 5432 端口映射到主机的 5432 端口,外部可以通过此端口连接数据库volumes:- ./postgis/data:/var/lib/postgis/data       # 挂载数据卷(假设你需要 PostGIS 的数据存储)- ./postgresql-data:/var/lib/postgresql/data # 持久化 PostgreSQL 数据库的数据到主机的 `./postgresql-data` 目录

进一步解释:

  1. 服务名称:postgres 是你的服务名称,代表你启动的 PostgreSQL 容器。
  2. 镜像:postgres:latest 表示使用最新版本的 PostgreSQL 官方镜像。
  3. 容器名称:postgres 是容器的名称,当你查看正在运行的 Docker 容器时,你会看到这个名称。
  4. 重启策略:restart: always 表示如果容器崩溃或 Docker 守护进程重新启动,容器将自动重启。
  5. 环境变量: - POSTGRES_DB 定义了要创建的数据库名称。- POSTGRES_USER 定义了用于访问数据库的用户名。- POSTGRES_PASSWORD 定义了对应用户的密码。
  6. 端口映射:5432:5432 将 PostgreSQL 的默认端口 5432 暴露给主机,使得主机上的应用可以通过该端口访问 PostgreSQL。
  7. 挂载卷: - ./postgis/data:/var/lib/postgis/data 是假设你还要使用 PostGIS(一个地理空间扩展),将数据持久化到主机上的 ./postgis/data 目录。注意,这里的路径应该是有效且存在的,否则会导致挂载失败。- ./postgresql-data:/var/lib/postgresql/data 是将 PostgreSQL 的数据存储到主机的 ./postgresql-data 目录下,确保数据库持久化。

4. 检查注意事项

  • PostGIS 使用: 如果你并不打算使用 PostGIS,则可以去掉 postgis/data 相关的部分。
  • 目录路径: 在启动容器之前,确保你挂载的本地目录(如 ./postgresql-data)在你的服务器上实际存在,或者你可以提前创建这些目录:
mkdir -p ./postgis/data
mkdir -p ./postgresql-data

5. 启动 PostgreSQL 容器

运行以下命令启动 PostgreSQL 容器:

docker-compose up -d

6. 检查容器状态

使用以下命令查看容器的运行状态,确保 PostgreSQL 容器

postgres

已成功启动:

docker ps

输出应显示

postgres

容器正在运行:

ubuntu@VM-20-7-ubuntu:~/my_project$ docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
4f8ab61c25bd   postgres:latest   "docker-entrypoint.s…"16 seconds ago   Up 15 seconds   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   postgres

7. 连接到 PostgreSQL

你可以通过宿主机的

localhost

或服务器的 IP 地址,使用数据库管理工具(如 pgAdmin、DBeaver)或者命令行连接 PostgreSQL:

  • 主机:localhost 或服务器 IP
  • 端口:5432
  • 数据库名:mydatabase
  • 用户名:user
  • 密码:password

你也可以使用以下命令直接进入容器内部的 PostgreSQL:

docker exec -it postgres psql -U user -d mydatabase

8. 数据持久化

volumes

配置确保数据库的数据保存在宿主机的

./postgresql-data

目录中。即使容器停止或删除,数据仍然会保留在宿主机中,确保数据安全。

以上步骤将帮助你在 Docker 中配置和运行 PostgreSQL 数据库。接下来,你可以继续配置前后端服务并将其整合到

docker-compose.yml

文件中,以便一起管理和部署。


本文转载自: https://blog.csdn.net/weixin_42400143/article/details/142890913
版权归原作者 王梓麒 所有, 如有侵权,请联系我们删除。

“Docker 安装 PostgreSQL”的评论:

还没有评论