docker封装基于centos的docker镜像和postgresql12安装包制作postgresql支持主备集群或单机部署的docker镜像
时间: 2024-01-14 20:04:11 浏览: 30
步骤如下:
1. 创建一个基于CentOS的Docker镜像,可以使用以下命令:
```
FROM centos:latest
MAINTAINER yourname <youremail@example.com>
```
2. 安装PostgreSQL 12,并配置主备集群或单机部署。可以使用以下命令:
```
RUN yum -y update \
&& yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \
&& yum -y install postgresql12-server postgresql12-contrib \
&& /usr/pgsql-12/bin/postgresql-12-setup initdb \
&& systemctl enable postgresql-12 \
&& systemctl start postgresql-12
```
3. 配置主备集群或单机部署。可以使用以下命令:
```
RUN echo "host replication all 0.0.0.0/0 md5" >> /var/lib/pgsql/12/data/pg_hba.conf \
&& echo "wal_level = replica" >> /var/lib/pgsql/12/data/postgresql.conf \
&& echo "max_wal_senders = 5" >> /var/lib/pgsql/12/data/postgresql.conf \
&& echo "wal_keep_segments = 32" >> /var/lib/pgsql/12/data/postgresql.conf \
&& echo "hot_standby = on" >> /var/lib/pgsql/12/data/postgresql.conf \
&& systemctl restart postgresql-12
```
4. 构建Docker镜像。可以使用以下命令:
```
docker build -t yourname/postgresql12 .
```
5. 运行Docker容器。可以使用以下命令:
```
docker run -d -p 5432:5432 --name postgresql12 yourname/postgresql12
```
其中,-d表示在后台运行容器,-p表示将容器的5432端口映射到主机的5432端口,--name表示命名容器。
6. 验证PostgreSQL是否已安装并正在运行。可以使用以下命令:
```
docker ps
```
此命令将列出正在运行的容器。
7. 进入已运行的容器并连接到PostgreSQL。可以使用以下命令:
```
docker exec -it postgresql12 bash
su - postgres
psql
```
此命令将进入容器并以postgres用户身份连接到PostgreSQL。
8. 验证是否已连接到PostgreSQL。可以使用以下命令:
```
\l
```
此命令将列出所有数据库。
9. 完成!您已成功制作了一个支持主备集群或单机部署的PostgreSQL 12 Docker镜像。