Docker 安装 PostgreSQL

目录

1. 启动 PostgreSQL 容器

2. 获取容器的 IP 地址

3. 启动一个新的 CentOS 容器

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

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

6. 在 PostgreSQL 中执行 SQL 操作


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
  1. 创建表 test1
create table test1(t1 int, t2 varchar(40));
  1. 插入数据
insert into test1(t1, t2) values (11, 'welcome to fengfujiang');
insert into test1(t1, t2) values (12, 'welcome to python');
  1. 查询数据
select * from test1;
### 如何在 Docker安装 PostgreSQL #### 使用 `docker pull` 命令获取镜像 为了在 Docker安装 PostgreSQL,可以使用如下命令来拉取官方的 PostgreSQL 镜像: ```bash docker pull postgres ``` 这会下载最新版本的 PostgreSQL 镜像到本地环境[^1]。 #### 编写 `docker-compose.yml` 文件构建服务 另一种方式是通过编写 `docker-compose.yml` 脚本来定义和运行多容器 Docker 应用程序。此方法简化了配置过程,并允许更灵活地管理多个服务之间的依赖关系。对于单个 PostgreSQL 实例来说,也可以采用这种方式来进行部署[^2]。 #### 创建并启动容器实例 当已经拥有了所需的镜像之后,则可以通过下面这条指令快速创建一个新的基于该镜像的容器并且立即启动它: ```bash docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres ``` 这里 `-e POSTGRES_PASSWORD=` 参数用于指定数据库超级用户的密码;而 `-d` 表示以后台模式运行容器[^4]。 #### 查看容器状态确认是否正常工作 最后一步是要确保新建立起来的服务确实处于活动当中。为此可执行以下命令查询当前正在运行中的所有容器列表及其详情信息: ```bash docker ps ``` 如果一切顺利的话,在输出的结果里应该能够看到名为 `some-postgres`(或者自定义的名字) 的条目存在,这意味着 PostgreSQL 数据库已经在 Docker 内部成功激活并准备就绪等待客户端连接请求的到来[^5]。 #### 进入容器内部操作 有时可能还需要进入到实际承载着应用程序逻辑的那个虚拟化环境中去完成某些特定的任务,比如初始化数据表结构或是调整参数设定之类的动作。这时就需要借助于这样的语句实现交互式的 shell 访问权限获得: ```bash docker exec -it container_id_or_name bash su postgres ``` 上述两条命令分别实现了两件事情:一是打开一个终端窗口直通目标进程所在的命名空间之内;二是切换至拥有充分权利的操作员身份以便后续开展更多深入级别的管理工作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值