Docker-10:Docker安装PostgreSQL

本文介绍如何通过Docker安装和配置PostgreSQL数据库。包括选择官方镜像、创建数据挂载文件夹、启动容器并验证数据库是否正常运行等步骤。

1. 前提

postgreSQL

Docker

由于在安装过程中,需要获取 PostgreSQL 的镜像,所以请及时 [[Docker安装及更换源]]。

2. 下载PostgreSQL镜像

2.1. 检索当前镜像


$ docker search postgres

20220705152209

列名列描述
NAME镜像名称
DESCRIPTION镜像描述
STARS标星数
OFFICIAL官方的
AUTOMATED自动化

话不多说,肯定选官方提供的镜像,同事它也是标星数量最多的。

2.2. 拉取当前镜像

不带版本号,代表为当前阶段最新的,如果需要指定的版本,请使用 docker pull postgres:${VERSION} 其中 ${VERSION} 代表你需要的版本号。

此处演示需要直接用最新版本。


$ docker pull postgres

pull 镜像后,查看镜像


$ docker images

20220705152846

3. 创建挂载文件夹

在运行 Docker 的系统中,创建一个可以挂在 PostgreSQL 数据文件的地方,方便后面做数据迁移等工作。

此处演示需要,使用了 /data/postgres 当作挂在文件的目录。


[root@localhost ~]$ cd /data/
[root@localhost data]$ mkdir postgres
[root@localhost postgres]$ pwd
/data/postgres

4. 启动镜像


docker run --name postgresql --privileged -e POSTGRES_PASSWORD=password -p 15433:5432 -v /data/postgres:/var/lib/postgresql/data -d postgres

4.1. 查看日志

20220705155606


PostgreSQL Database directory appears to contain a database; Skipping initialization

2022-07-05 07:36:51.259 UTC [1] LOG:  starting PostgreSQL 14.1 (Debian 14.1-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2022-07-05 07:36:51.261 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2022-07-05 07:36:51.261 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2022-07-05 07:36:51.264 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2022-07-05 07:36:51.271 UTC [26] LOG:  database system was interrupted; last known up at 2022-07-05 07:24:38 UTC
2022-07-05 07:36:51.292 UTC [26] LOG:  database system was not properly shut down; automatic recovery in progress
2022-07-05 07:36:51.294 UTC [26] LOG:  redo starts at 0/16FAFF0

4.2. 查看进程


docker ps -a

20220705154046

5. 使用连接

测试数据库是否连接成功,用户名为 postgres;密码为: password。

20220705155631

20220705155819

### 解决 `docker-compose: command not found` 错误 #### 1. 确认 Docker Compose 是否已安装 在尝试运行 `docker-compose` 命令前,需确认系统中是否已正确安装 Docker Compose。可以使用以下命令检查其版本: ```bash docker-compose --version ``` 如果没有返回任何有效信息,则表明未安装或路径设置存在问题[^1]。 #### 2. 安装 Docker Compose 对于大多数 Linux 发行版来说,推荐通过官方提供的脚本来获取最新稳定版本的 Docker Compose: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 随后赋予可执行权限给下载下来的二进制文件: ```bash sudo chmod +x /usr/local/bin/docker-compose ``` 再次测试命令是否可用以验证安装成功与否[^2]。 #### 3. 路径配置问题排查 有时即使完成了上述步骤仍会碰到找不到命令的情况,可能是因为 `/usr/local/bin` 不属于当前用户的 PATH 变量范围内。此时可通过编辑 `.bashrc`,`.zshrc` 或其他 shell 初始化脚本加入这一目录至环境变量列表里去解决这个问题: ```bash export PATH=$PATH:/usr/local/bin/ source ~/.bashrc ``` #### 4. 使用 Python 版本作为备用选项 (仅适用于特定场景) 如果因为某些特殊原因无法正常安装原生形式下的 Docker Compose ,还可以考虑利用 pip 工具来安装一个由 python 编写的兼容版本: ```bash pip install docker-compose ``` 不过这种方法可能会带来额外依赖项以及潜在冲突风险,请谨慎选择[^4]。 --- ### 正确编排 Odoo 的 Docker 组合服务 除了修复基础工具链外,还需要关注原始提交中的 YAML 配置语法错误部分。以下是修正后的样例供参考: ```yaml version: '3' services: db: image: postgres:13-alpine environment: POSTGRES_DB: odoo POSTGRES_PASSWORD: odoo POSTGRES_USER: odoo volumes: - odoo_db_data:/var/lib/postgresql/data/ web: image: odoo:16 ports: - "8069:8069" volumes: - odoo_web_data:/var/lib/odoo - ./config:/etc/odoo - ./addons:/mnt/extra-addons depends_on: - db environment: HOST: db USER: odoo PASSWORD: odoo volumes: odoo_db_data: odoo_web_data: ``` 确保每一层缩进都严格遵循 YAML 标准,并且字段名大小写保持一致[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老邪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值