docker 部署 postgresql
时间: 2023-07-03 12:33:50 浏览: 116
好的,以下是 Docker 部署 PostgreSQL 的步骤:
1. 下载 PostgreSQL 镜像
```
docker pull postgres
```
2. 创建并启动 PostgreSQL 容器
```
docker run --name postgresql -e POSTGRES_PASSWORD=your_password -d postgres
```
其中,`--name` 指定容器名称,`-e` 指定环境变量,`POSTGRES_PASSWORD` 是 PostgreSQL 的密码,`-d` 表示以后台方式运行容器。
3. 进入 PostgreSQL 容器
```
docker exec -it postgresql bash
```
4. 登录 PostgreSQL
```
psql -U postgres
```
5. 创建数据库
```
CREATE DATABASE your_database;
```
6. 创建用户并授权
```
CREATE USER your_user WITH ENCRYPTED PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE your_database TO your_user;
```
7. 退出 PostgreSQL
```
\q
```
8. 退出容器
```
exit
```
至此,你已经成功地使用 Docker 部署了一个 PostgreSQL 数据库。
相关问题
docker部署postgresql
Docker 部署 PostgreSQL 的步骤如下:
1. 下载 PostgreSQL 镜像
可以在 Docker Hub 上搜索 PostgreSQL 镜像,例如:
```
docker pull postgres
```
2. 创建 PostgreSQL 容器
使用以下命令创建一个名为 my-postgres 的 PostgreSQL 容器:
```
docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
```
其中,POSTGRES_PASSWORD 是 PostgreSQL 数据库的密码。
3. 连接到 PostgreSQL 容器
使用以下命令连接到 my-postgres 容器:
```
docker exec -it my-postgres psql -U postgres
```
其中,-U 参数指定了连接的用户名,这里使用默认的 postgres 用户。
4. 创建数据库
在 PostgreSQL 容器中,可以使用 SQL 命令创建数据库,例如:
```
CREATE DATABASE mydatabase;
```
5. 使用数据库
可以使用以下命令连接到 mydatabase 数据库:
```
docker exec -it my-postgres psql -U postgres -d mydatabase
```
其中,-d 参数指定了连接的数据库名。
以上就是使用 Docker 部署 PostgreSQL 的基本步骤。
docker 部署 postgresql 集群
要在 Docker 中部署 PostgreSQL 集群,可以使用 Docker Compose 来管理多个容器。以下是部署 PostgreSQL 集群的步骤:
1. 创建 Docker Compose 配置文件
在任意目录下创建一个 `docker-compose.yml` 文件,填写以下内容:
```
version: '3'
services:
primary:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=your_password
- POSTGRES_USER=your_user
- POSTGRES_DB=your_database
volumes:
- primary:/var/lib/postgresql/data
standby:
image: postgres
environment:
- POSTGRES_PASSWORD=your_password
- POSTGRES_USER=your_user
- POSTGRES_DB=your_database
- STANDBY=1
volumes:
- standby:/var/lib/postgresql/data
depends_on:
- primary
volumes:
primary:
standby:
```
其中,`primary` 和 `standby` 分别表示主节点和备份节点,`POSTGRES_PASSWORD`、`POSTGRES_USER` 和 `POSTGRES_DB` 分别是 PostgreSQL 的密码、用户名和数据库名。`volumes` 指定了数据卷的挂载位置,这可以确保数据在容器重启后可以被保留。
2. 启动 PostgreSQL 集群
在配置文件所在目录下执行以下命令来启动 PostgreSQL 集群:
```
docker-compose up -d
```
这条命令会在后台启动两个容器,一个是主节点,一个是备份节点。
3. 切换到主节点
进入主节点容器内:
```
docker exec -it <primary_container_name> bash
```
切换到 PostgreSQL 环境:
```
psql -U your_user your_database
```
执行以下命令,将主节点设置为可写:
```
SELECT pg_create_physical_replication_slot('replica_slot');
```
4. 切换到备份节点
进入备份节点容器内:
```
docker exec -it <standby_container_name> bash
```
切换到 PostgreSQL 环境:
```
psql -U your_user your_database
```
执行以下命令,将备份节点设置为只读:
```
SELECT pg_create_physical_replication_slot('replica_slot', true);
SELECT pg_basebackup('host=<primary_container_name> port=5432 user=your_user password=your_password sslmode=prefer', '-X stream -c fast -R -P');
```
其中,`<primary_container_name>` 是主节点容器的名称。
5. 测试 PostgreSQL 集群
在主节点中创建一个表:
```
CREATE TABLE test (id SERIAL PRIMARY KEY, name VARCHAR(50));
INSERT INTO test (name) VALUES ('test');
```
在备份节点中查询该表:
```
SELECT * FROM test;
```
如果能够查询到数据,说明 PostgreSQL 集群已经搭建成功。
以上就是在 Docker 中部署 PostgreSQL 集群的步骤,希望能对你有所帮助。
阅读全文