Docker 安装 PostgreSQL

1. 启动 PostgreSQL 容器

复制代码
docker run --name ffj-postgres -p 5432:5432 -e POSTGRES_PASSWORD=Cisc0123 -d postgres
  • docker run:启动一个新的容器。
  • --name指定容器名称为 ffj-postgres
  • -p 5432:5432:将主机的 5432 端口映射到容器的 5432 端口。
  • -e POSTGRES_PASSWORD=Cisc0123:设置 PostgreSQL 的 postgres 用户的密码为 Cisc0123
  • -d postgres:后台运行容器,并使用 postgres 镜像。

2. 获取容器的 IP 地址

复制代码
docker inspect -f '{{.NetworkSettings.IPAddress}}' ffj-postgres
  • docker inspect:查看容器的详细信息。
  • -f '{``{.NetworkSettings.IPAddress}}':格式化输出以仅显示 IP 地址。
  • ffj-postgres:指定要查看的容器名称。

这一步的输出会是容器的 IP 地址,例如 172.17.0.2

3. 启动一个新的 CentOS 容器

复制代码
docker run --rm -it --name ffj-centos1 centos
  • docker run:启动一个新的容器。
  • --rm:容器退出时自动删除容器。
  • -it:使容器运行在交互模式并分配一个伪终端。
  • --name ffj-centos1:指定容器名称为 ffj-centos1
  • centos:使用 centos 镜像。

4. 在 CentOS 容器中安装 PostgreSQL 客户端

复制代码
yum install -y postgresql
  • yum install -y:自动确认安装 postgresql

由于centos停止维护,需要更换源 ,容器没有vim命令,使用echo

复制代码
echo "[BaseOS]
name=CentOS-\$releasever - Base
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[AppStream]
name=CentOS-\$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[extras]
name=CentOS-\$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
" > /etc/yum.repos.d/CentOS-Base.repo

yum clean all && yum makecache

5. 通过 psql 客户端连接到 PostgreSQL 容器

复制代码
psql -U postgres -d postgres -h 172.17.0.3
  • psql:PostgreSQL 命令行客户端。
  • -U postgres:使用 postgres 用户连接。
  • -d postgres:连接到 postgres 数据库。
  • -h 172.17.0.3:指定 PostgreSQL 服务器的 IP 地址。

6. 在 PostgreSQL 中执行 SQL 操作

以下是连接到 PostgreSQL 后的 SQL 操作:

  1. 切换到 postgres 数据库

    \c postgres

  2. 创建表 test1

    create table test1(t1 int, t2 varchar(40));

  3. 插入数据

    insert into test1(t1, t2) values (11, 'welcome to fengfujiang');
    insert into test1(t1, t2) values (12, 'welcome to python');

  4. 查询数据

    select * from test1;

相关推荐
东方隐侠安全团队-千里1 分钟前
Docker青龙面板挖矿入侵事件应急复盘
运维·docker·容器
猫头虎25 分钟前
Docker 安装 OpenClaw 报错排查完全手册(续):如何解决pairing required,`EACCES: permission denied`Docker 拉取镜像提示 `denied
运维·docker·容器·开源·github·aigc·ai编程
一直都在5721 小时前
nginx和docker面试题
nginx·docker·github
有想法的py工程师2 小时前
PostgreSQL 事务隔离级别详解(以及与MySQL实现差异)
数据库·mysql·postgresql
ai产品老杨11 小时前
打破异构算力壁垒:基于GB28181/RTSP与Docker容器化的企业级AI视频平台架构解析(附源码交付方案)
人工智能·docker·音视频
有想法的py工程师12 小时前
PostgreSQL 触发器性能评估实战(pg_stat_user_functions)
数据库·postgresql
江湖有缘12 小时前
本地化JSON 处理新方案:基于 Docker的JSON Hero部署全记录
java·docker·json
l1t12 小时前
在华为arm64 kylin计算机上安装docker编译llama.cpp的步骤
华为·docker·llama·kylin
merlin-mm12 小时前
GPU 间的通信方式
云原生·容器·kubernetes
IvorySQL13 小时前
IvorySQL 5.3 正式发布:基于 PG 18.3 内核,多特性升级+全场景适配
数据库·postgresql·开源