使用docker部署

参考文档: https://blog.csdn.net/Pireley/article/details/132312178

拖取镜像

docker pull postgres

运行

docker run --name postgres -e POSTGRES_PASSWORD=Abc1234% -p 0.0.0.0:5432:5432 -v /home/zx/postgres/data:/var/lib/postgresql/data -d postgres
  • –name postgres:指定容器的名称;
  • -e POSTGRES_PASSWORD=Abc1234%:设置环境变量,这里为设定PostgreSQL数据库的密码;
  • -p 5432:5432:指定端口映射,前者为宿主机访问端口,后者为容器内端口。如果不指定端口映射,只有在容器内可以访问数据库,外部是无法访问的;
  • -v /home/zx/postgres/data:/var/lib/postgresql/data:v是volume的简写,即绑定一个卷,冒号前的路径为宿主机的路径(如果指定路径不存在会自动创建目录),冒号后为容器内路径。容器会把宿主机的目录映射到容器内的路径,这样容器运行中生成的数据实际上就是写到了宿主机的指定路径上,即使容器删除了,此路径的文件也不会删除,这样就做到了数据库的持久化存储。还可以通过docker volume提供的相关命令显式地创建volume,然后再挂载到容器上,这里不做介绍,请自行查询相关内容;
  • -d:表示后台运行容器;
  • postgres:表示镜像的名称,docker基于上步拉取的镜像创建出容器;


注意,在wsl中如果使用-v,则最好不要绑定到mnt的本地盘中,因为可能出现文件或文件夹无权限导致无法启动问题