# Docker安装PostgresSQL指南 ## 前言 本文将介绍如何在Docker中安装PostgreSQL数据库。 ## Docker安装步骤 ### 1. 拉取PostgreSQL镜像 > 注意下方命令拉取的是最新版本的PostgreSQL镜像,如果你需要指定版本,请使用 > > ```sh > docker pull postgres:指定版本号 > ``` > > 命令 ``` docker pull postgres ``` > 执行结果 > > ![image-20250420104553777](assets/Docker_PostgreSQL/image-20250420104553777.png) > ### 2. 启动PostgreSQL容器 ```sh docker run --name my-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \ -p 5432:5432 \ -v /var/service/postgresql/my-postgres/data:/var/lib/postgresql/data \ --restart unless-stopped \ -d postgres ``` 参数说明: - `--name`:为容器指定名称 - `-e POSTGRES_PASSWORD`:设置postgres用户的密码(必须) - `-v`参数将容器内的数据目录映射到主机目录。 - 对于-v /var/service/postgresql/my-postgres/data:/var/lib/postgresql/data,前者路径是主机路径,后者为容器中路径 - `--restart unless-stopped` 表示: >1. 当Docker守护进程启动时,自动启动这个容器 >2. 如果容器正常退出(手动停止),则不会自动重启 >3. 如果容器异常退出(崩溃),会自动重启 >4. 当然你可以使用其它策略,或者不选择策略 > >### 其他可选的restart策略: > >- `--restart no`:不自动重启(默认值) >- `--restart on-failure[:max-retries]`:只在非正常退出时重启,可指定最大重试次数 >- `--restart always`:总是重启,无论退出状态如何(包括手动停止后) - `-p 5432:5432`:将容器端口映射到主机端口 - `-d`:后台运行容器 **注:如果不想当你删除容器时数据丢失,请将容器内的数据目录挂载到主机目录中** > 执行结果 > > ![image-20250420111459451](assets/Docker_PostgreSQL/image-20250420111459451.png) > > 验证容器是否启动,请执行`docker ps`命令 > > ![image-20250420111643192](assets/Docker_PostgreSQL/image-20250420111643192.png) > ### 3. 连接到PostgreSQL容器 ``` docker exec -it postgres psql -U postgres ``` - `-it`:交互式运行 - `-U postgres`:指定用户名为postgres ### 4. 创建数据库 ``` CREATE DATABASE mydatabase; ``` ### 5. 退出PostgreSQL容器 ``` \q ``` ## Docker Compose安装步骤 > 这个可以允许你不预先安装镜像,文件执行时会自动帮你下载,因此更建议使用此种方式 ### 1. 创建`docker-compose.yml`文件 ```yaml services: postgres: image: postgres:latest container_name: my-postgres environment: POSTGRES_PASSWORD: mysecretpassword # 必填,数据库访问密码 POSTGRES_USER: myuser # 可选,自定义用户名 POSTGRES_DB: mydb # 可选,自定义初始数据库 ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data # 声明挂载的数据卷所映射的目录 volumes: postgres_data: # 声明所使用的数据卷 ``` > 示例步骤 > > 首先我们找到一个合适的目录,比如/var/service/postgresql/my-postgres > 直接 ```cd /var/service/postgresql/my-postgres``` > 然后执行 ```nano docker-compose.yml``` > 将上面的内容复制进去,然后按Ctrl+X,再按Y,再按Enter保存文件 > > ![image-20250420112228948](assets/Docker_PostgreSQL/image-20250420112228948.png) > ### 2. 启动服务 > 一般建议在你所使用的工作平台创建并编辑好Docker-Compose文件再上传到你的Linux服务器中(你执行命令的目录下必须有这个文件) ```sh # 执行下方命令 docker-compose up -d ``` > 注意: > > 也许你执行上方命令会提示 > > ![image-20250420112323250](assets/Docker_PostgreSQL/image-20250420112323250.png) > > 这是因为你的Docker Compose版本已经不支持这种方式了,请使用下方命令 > > ```sh > docker compose up -d > ``` > > ![image-20250420112546002](assets/Docker_PostgreSQL/image-20250420112546002.png) > > 怎么样?是不是更方便 ## 总结 本文介绍了如何在Docker中安装PostgreSQL数据库.