一、安装命令

docker run -d \
  --name postgres18 \
  -e POSTGRES_PASSWORD=12344 \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_DB=postgres \
  -p 5432:5432 \
  -v /postgress/data:/var/lib/postgresql \
  --restart=unless-stopped \
  --log-driver json-file \
  --log-opt max-size=100m \
  --log-opt max-file=3 \
  postgres:18.4-alpine3.23

二、解释

  • docker run -d

    • docker run:启动一个新的容器。

    • -d:以后台模式(detached mode)运行,容器会在后台运行,不会占用你的终端。

  • --name postgres18

    • 为容器指定一个名字叫 postgres18,方便后续管理(如 docker stop postgres18)。

  • -e POSTGRES_PASSWORD=122344

    • 设置环境变量,定义 PostgreSQL 超级用户 postgres 的密码为 122344这是一个安全风险,请务必在实际使用中改为强密码。

  • -e POSTGRES_USER=postgres

    • 设置环境变量,指定超级用户的用户名为 postgres(通常保持默认)。

  • -e POSTGRES_DB=postgres

    • 设置环境变量,指定容器启动时自动创建的默认数据库名称为 postgres

  • -p 5432:5432

    • 端口映射。将宿主机的 5432 端口映射到容器的 5432 端口。这样,你就可以通过 localhost:5432 或 服务器IP:5432 来访问数据库了。

  • -v /postgress/data:/var/lib/postgresql

    • 数据持久化(Volumes)。将宿主机目录 /postgress/data 挂载到容器内的 /var/lib/postgresql 目录。这是最关键的一步,它确保所有数据库文件都存储在宿主机上,即使容器被删除,数据也不会丢失。

  • --restart=unless-stopped

    • 重启策略。设置容器在退出时总是自动重启,除非是用户主动停止的。这能保证服务器重启后,数据库容器会自动恢复运行。

  • --log-driver json-file 和 --log-opt

    • 日志管理。限制容器日志的大小。max-size=100m 表示单个日志文件最大 100MB,max-file=3 表示最多保留 3 个文件。这能有效防止日志文件无限增长占满磁盘空间。

  • postgres:18.4-alpine3.23

    • 指定使用的镜像名称和标签。这个镜像基于 Alpine Linux 3.23,包含了 PostgreSQL 18.4 版本。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐