Docker安装Postgres_16数据库

PostgreSQL简介

PostgreSQL 是一个功能强大、开源的关系型数据库管理系统(RDBMS),以其可靠性、功能丰富性和可扩展性而闻名。它支持复杂的查询、事务完整性、并发控制以及多种数据类型和扩展功能,适用于各种规模的应用程序; 适用传统的IT服务系统关系型数据库开发与应用,也适用于互联网行业高并发、大数据量存储等数据需求;

Portainer拉取镜像

在Portainer平台Images界面Image的文本框中输入postgres:16.6,点击Pull the image即开始远程到(Docker Hub)中央仓库拉取image镜像文件,如果不确定可用的镜像版本有哪些,可以点击Search跳转到docker官方中央仓库平台,检索postgres相关资源与可用tags标签;
进入postgres镜像资源详情页,展示了所有可用版本tags标签以及官方提供的Dockerfile版本;根据我们的需要来选择,本文中选择的是16.6版本;
当在Portainer平台Images界面中成功拉取 postgres:16.6镜像后,我们就可以在Containers中快速创建postgres数据库的docker容器系统;

创建Docker容器

拉取Postgres镜像后,可直接在Portainer平台上创建docker容器运行应用服务;在左侧Containers页面点击Add container,进入创建容器配置页,在Image中输入: postgres:16.6,设置映射端口Port mapping: 5432》5432
在Volumes中配置docker服务主机与docker容器中映射的卷目录,其中container指docker容器内目录,host指docker服务主机物理目录,用于Postgresql运行产生的数据目录进行容器外维护,防止容器故障数据丢失;
注意:docker容器非常适合无状态服务,但对于具有产生数据的有状态服务,如:数据库、消息队列等,一定要创建dokcer容器映射卷目录,将数据同步到docker服务主机的物理目录中;
Docker安装 PostgreSQL 数据库可以通过多种方式进行,包括使用单个 `docker run` 命令、Docker Compose 文件等。以下是几种常见的安装方法及其配置说明。 ### 使用 `docker run` 命令安装 PostgreSQL 可以使用以下命令在 Docker 中启动一个 PostgreSQL 容器: ```bash docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres ``` - `--name some-postgres` 指定容器名称。 - `-e POSTGRES_PASSWORD=mysecretpassword` 设置 PostgreSQL 的默认用户 `postgres` 的密码。 - `-p 5432:5432` 将容器的 5432 端口映射到宿主机的 5432 端口。 - `-d` 表示后台运行容器。 - `postgres` 是官方 PostgreSQL 镜像名称。 如果希望自定义数据库名称和用户,可以添加更多环境变量: ```bash docker run --name some-postgres \ -e POSTGRES_USER=myuser \ -e POSTGRES_PASSWORD=mypassword \ -e POSTGRES_DB=mydb \ -p 5432:5432 \ -d postgres ``` ### 使用 Docker Compose 安装 PostgreSQL 如果使用 Docker Compose,可以创建一个 `docker-compose.yml` 文件来定义服务。以下是一个示例配置: ```yaml version: '3.9' services: postgres: image: postgres:16 container_name: postgres-16 environment: POSTGRES_USER: your_username POSTGRES_PASSWORD: your_password POSTGRES_DB: your_database volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" restart: always volumes: postgres_data: ``` - `environment` 部分用于设置数据库的用户名、密码和默认数据库名称。 - `volumes` 用于持久化数据,将容器内的 `/var/lib/postgresql/data` 映射到宿主机的 `postgres_data` 卷中。 - `ports` 将容器的 5432 端口映射到宿主机的 5432 端口。 - `restart: always` 确保容器在系统重启后自动启动。 启动容器: ```bash docker-compose up -d ``` 停止容器: ```bash docker-compose down ``` ### 验证 PostgreSQL 是否运行 可以使用以下命令查看正在运行的容器: ```bash docker ps ``` 输出应显示 `postgres` 容器正在运行: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f8ab61c25bd postgres "docker-entrypoint.s…" 16 seconds ago Up 15 seconds 0.0.0.0:5432->5432/tcp postgres ``` ### 连接到 PostgreSQL 可以通过 `psql` 命令行工具连接到 PostgreSQL: ```bash docker exec -it postgres psql -U your_username -d your_database ``` 如果容器中没有 `psql`,也可以使用本地的 `psql` 工具连接: ```bash psql -h localhost -U your_username -d your_database ``` ### 数据持久化 为了确保数据不会因容器删除而丢失,可以使用 Docker 卷将 PostgreSQL 的数据目录映射到宿主机上。例如: ```bash docker run --name some-postgres -v /my/local/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres ``` 此命令将宿主机的 `/my/local/data` 目录挂载到容器的 `/var/lib/postgresql/data` 目录中,从而实现数据持久化[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值