Windows中使用 docker-compose 构建 postgresql环境

遇到的问题

  1. docker-desktop需要先启动,并且登录才能执行相关命令(否则会遇到无法连接或者无权限的问题)
  2. 使用docker compose up -d,若出现无权限的问题,需要在命令行中执行docker login 输入用户名、密码登录后才可继续,可能需要重启客户端之类的,我当时也试了很多次,还遇到客户端登录马上退出的问题。
  3. 需要检查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少了个-,给我找了半天。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐