创建目录
- 登录飞牛
- 打开文件管理
- 创建一个存pg数据的目录
- 个人建议创建一个
docker
目录,用来专门存放docker容器数据

创建docker
- 打开
docker
- 转到
Compose
- 新增项目
- 项目名称
postgres
不要有中文和特殊符号
- 路径选择刚才建立的
- 来源 创建
- 创建并启动

具体配置
以 #
开头的是注释,可以删除 后面数字标号下面有详细解释
# 项目名称 ¹
name: postgres
# compose 版本号 ²
# version: "3.3"
services:
postgres:
# 容器名称 ³
container_name: pg16
# 镜像地址 ⁴
image: postgres:16.9-alpine3.22
# 网络模式 桥接
network_mode: bridge
# 重启策略 自动重启
restart: always
# 最大占用cpu线程 ⁵
cpus: 1
# 最大内存占用 ⁶
mem_limit: 512m
# 日志限制 ⁷
logging:
options:
# 产生的日志文件大小上限
max-size: "1m"
# 日志文件的最大份数
max-file: "3"
# 环境变量 ⁸
environment:
# 下面两行是时区设置成中国用的时区,北京时间
TZ: Asia/Shanghai
TIME_ZONE: Asia/Shanghai
# 管理员 postgres 的密码 必须
POSTGRES_PASSWORD: 管理员密码
# 端口映射 ⁹
ports:
- 5432:5432
# 文件映射 ¹⁰
volumes:
- ./data:/var/lib/postgresql/data
配置文件说明
- ¹ 在使用compose部署项目时,项目名称是必须得,不过可以不写,项目名称的取值优先级
命令参数
>name值
>compose文件所在文件夹名称
,飞牛指定的项目值就属于是 命令参数
,不过建议还是在用 name值
的方式指定一下
- ² compose 版本号,在新版docker compose中这个值废弃了写上会有警告,但是老版本中必须写,飞牛不需要写。
- ³ 容器名称 可以不写,会自动生成,但是强烈建议写上,要不然容器多了,要管理时,自动生成的可能会不好找
- ⁴ 镜像地址 必须,强烈建议写上具体的版本号,不要不写或写
latest
- 不要就是默认的
latest
这个会拉取当前最新版
- 在使用数据库容器,或容器要配合其他容器时强烈建议写上,要不然容器有更新时要是出现新旧版本数据不兼容会出大问题,特别是数据库
- pg数据库的版本,建议填写带有
alpine
的,这个镜像是体积最小的
- 资源占用
可以不写,就会不做任何限制,但是强烈建议写上,要不然容器万一出现问题大量占用资源,会让宿主机卡死,切身体会!
- ⁵ 最大占用cpu线程 一般容器填写
1
就完全够用了
- ⁶ 最大内存占用 一般容器填写
512M
也就够用了,如果占用内存大,可以用 G
最单位,比如填写 1G
- ⁷ 日志限制
可以不写,但是如果容器产生的日志过过,会大量占用硬盘容量,飞牛默认一个日志文件最大 100m
,最多好像是 5
个文件
- ⁸ 环境变量
这个需要具体容器具体分析,从官方给出的部署文档中获取
- 冒号左边 具体环境变量的名称 千万不要改
- 冒号右边 环境变量的值,有特殊符号或空格,需要用双引号包起来
POSTGRES_PASSWORD
管理员 postgres 的密码 必须
POSTGRES_USER
创建新的超级用户,此可选环境变量与 POSTGRES_PASSWORD
结合使用,以设置用户及其密码。在不写时,就会使用默认用户 postgres
POSTGRES_DB
初始化数据库名称,在不写时就会使用默认数据库 postgres
- 注意 在pg数据库中,上面的环境变量仅在数据库初始化的时候生效,如果数据库中有东西,会忽略,如果还需要修改或创建对应的值,就需要进入数据库终端使用命令创建,或使用图像化数据库管理软件链接上数据库后操作
- ⁹ 端口映射
- 冒号右边的是容器内部端口,这个不能改,除非容器有指定监听端口的功能
- 冒号左边的是映射到宿主机中的端口,这个随便改,大于1024就可以
- 容器报错中出现
bind
字样一般就是宿主机端口被占用了,改一个就好了
- ¹⁰ 文件映射
将容器产生的数据持久化,容器在重启或重新部署后数据还在
- 冒号右边 容器内部路径,千万不要随便改,除非你知道要做什么
- 冒号左边,宿主机中的路径,需要自定义
./
表示当前目录,也就是 docker-compose-yml
所在的目录(这个仅限飞牛NAS,我发现有的NAS就不是)
./data
就表示在 docker-compose-yml
文件所在的目录中的 data
目录,不存在会自动创建
还有问题就留言。
或者需要远程的朋友,需要可联系。
微信号 E-0_0-
闲鱼搜索用户 明月人间
或者邮箱 firfe163@163.com
B站 秦曱凧