Windows中使用 docker-compose 构建 postgresql环境
·
遇到的问题
docker-desktop需要先启动,并且登录才能执行相关命令(否则会遇到无法连接或者无权限的问题)- 使用
docker compose up -d,若出现无权限的问题,需要在命令行中执行docker login输入用户名、密码登录后才可继续,可能需要重启客户端之类的,我当时也试了很多次,还遇到客户端登录马上退出的问题。 - 需要检查
docker-compose.yml中的配置是否写错、写漏,否则docker容器都无法正常启动
环境
系统版本:windows11,
postgresql版本:14.18
docker版本:Docker Desktop 4.41.2
docker compose版本:v2.35.1-desktop.1
1. docker-compose.yml文件
services:
postgres:
image: postgres:14.18 # 镜像名称、版本
container_name: nextjs_blog_postgres # 容器名
restart: unless-stopped # 非手动停止下重启
ports:
- '5432:5432' # 端口映射
environment:
- POSTGRES_USER=root # 用户名
- POSTGRES_PASSWORD=123456 # 密码
- POSTGRES_DB=postgres # 数据库名
- POSTGRES_INITDB_ARGS="--encoding=UTF-8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8" # 字符集
- TZ=Asia/Shanghai # 时区
- LANG=en_US.UTF-8 # 语言
volumes:
# 将容器中相关路径挂载目录到本地db目录下
- ./db/data:/var/lib/postgresql/data
- ./db/logs:/var/log/postgresql
- ./db/config/postgresql.conf:/etc/postgresql/postgresql.conf
- ./db/config/pg_hba.conf:/etc/postgresql/pg_hba.conf
2. 部署
文件路径下执行:docker compose up -d
首次拉取镜像会比较慢,之后如果删除容器再运行就很快了
成功后容器运行中:
3. 进入容器
先查看运行中的容器id: docker ps
再进入容器:docker exec -it dfe10bb802ad bash,显示如下,就成功进入了
3. 进入数据库
psql -U root -d postgres
这里需要指定用户与数据库,与docker-compose.yml配置的名称相同
列出数据库,查询当前时间
最后我们从外面连接一下数据库
到这里,就已大功告成了,可以愉快地进入下一步了。
写这文章,主要记录一下自己第一次使用docker-compose所遇到的坑,确实是很方便。刚开始没启动,后面又遇到登录的问题,最后跟着别人的配置搞,给我留了个坑,他encoding=UTF-8少了个-,给我找了半天。
更多推荐



所有评论(0)