通过Dockerfile构建postgresql数据库镜像初始化表数据

通过Dockerfile构建postgresql数据库镜像初始化表数据

1.编写Dockerfile

#基础镜像
FROM postgres:12

# 环境变量,配置数据库用户名和密码
ENV POSTGRES_USER postgres
ENV POSTGRES_PASSWORD 123456

# 将初始化数据库的脚本复制到docker镜像中
COPY ./all.sql /docker-entrypoint-initdb.d/

# 启动脚本
CMD ["docker-entrypoint.sh", "postgres"]
  • 将名为 all.sql 的 SQL 文件复制到 /docker-entrypoint-initdb.d/ 目录中。这是一个特殊目录,容器启动时会自动执行该目录下的所有 SQL 文件
  • CMD [“docker-entrypoint.sh”, “postgres”] 是用于在 Docker
    镜像中指定容器默认的启动命令。当容器启动时,Docker 将会运行这个命令。
    在这个特定的例子中,docker-entrypoint.sh 是 PostgreSQL 镜像中的一个脚本文件,它用于启动
    PostgreSQL 服务。postgres 参数告诉 docker-entrypoint.sh 脚本以管理员模式启动
    PostgreSQL 数据库。 因此,当您运行基于这个 Docker 镜像创建的容器时,容器首先执行
    docker-entrypoint.sh 脚本,并以管理员模式启动 PostgreSQL 服务
  • all.sql为sql语句,如果需要在指定的数据库中进行创建表等操作,可以在sql文件中添加创建数据库语句,例如下图。
    在这里插入图片描述

2.构建镜像

目的是为了让数据库镜像中有初始化的数据库数据,方便后续使用。

docker build -t test_postgres:12 -f PostgresDockerfile --squash .
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是制作单机版docker镜像的步骤: 1. 下载PostgreSQL 12的离线安装包,可以从官方网站下载:https://www.postgresql.org/download/ 2. 创建一个新的文件夹,用于存放dockerfilepostgresql安装包。 3. 在文件夹中创建一个名为“dockerfile”的文件,并将以下代码复制到文件中: ``` FROM ubuntu:18.04 # 安装依赖 RUN apt-get update && \ apt-get install -y gnupg2 wget # 导入PG的PGDG仓库的公钥 RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - # 添加PGDG仓库 RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" > /etc/apt/sources.list.d/pgdg.list # 安装PostgreSQL RUN apt-get update && \ apt-get install -y postgresql-12 # 创建PG数据文件夹 RUN mkdir -p /usr/local/pgsql/data # 设置PG用户和组 RUN groupadd pgsql && \ useradd -r -g pgsql pgsql # 更改PG数据文件夹的权限 RUN chown -R pgsql:pgsql /usr/local/pgsql # 设置环境变量 ENV PATH="/usr/lib/postgresql/12/bin:${PATH}" ENV PGDATA=/usr/local/pgsql/data # 暴露端口 EXPOSE 5432 # 启动命令 CMD ["postgres"] ``` 4. 将下载的postgresql安装包复制到文件夹中。 5. 打开终端,进入到文件夹中,执行以下命令来构建docker镜像: ``` docker build -t postgresql12 . ``` 其中,postgresql12是镜像的名称,可以自己定义。 6. 构建成功后,可以使用以下命令来启动docker容器: ``` docker run --name postgresql12 -d -p 5432:5432 postgresql12 ``` 其中,postgresql12是镜像的名称,可以自己定义。5432是PostgreSQL的默认端口,可以根据需要进行修改。 7. 启动成功后,可以使用以下命令来查看容器是否运行: ``` docker ps ``` 8. 如果容器正在运行,可以使用以下命令来进入容器: ``` docker exec -it postgresql12 bash ``` 9. 进入容器后,可以使用以下命令来连接PostgreSQL: ``` psql -U postgres ``` 10. 使用以下命令来退出PostgreSQL和容器: ``` \q exit ``` 至此,单机版docker镜像制作完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值