1、镜像获取
在 https://hub.docker.com/_/postgreshttps://hub.docker.com/_/postgres/tags 中查看“PostgreSQL数据库镜像”可用版本
2、镜像拉取
docker pull postgres:11.16
3、创建数据卷
# 创建数据卷用于挂载docker数据目录到宿主机
docker volume create pgdata
4、启动
docker run --name pg9_yun -p 5432:5432 -e POSTGRES_PASSWORD=123456 -v pgdata:/var/lib/postgresql/data --restart=always -d postgres:11.16
命令解释
--name pgsql: 指定容器的名称为 pgsql。
-p 5432:5432: 将容器的 5432 端口映射到宿主机的 5432 端口。
-e POSTGRES_PASSWORD=123456: 设置 PostgreSQL 的管理员密码为 abc123。
-v pgdata:/var/lib/postgresql/data: 挂载一个名为 pgdata 的卷到容器内的 /var/lib/postgresql/data 目录。这将用于存储 PostgreSQL 的数据文件。
--restart=always: 设置容器在宿主机启动时自动重启。
-d: 在后台运行容器。
postgres:11.16: 指定要使用的 Docker 镜像为 postgres:11.14,即 PostgreSQL 11.16 版本。
#注意事项
卷的创建:
如果 pgdata 卷不存在,Docker 会在第一次运行容器时自动创建它。
如果 pgdata 卷已经存在,它将被复用。
持久化数据:
使用 -v 参数挂载卷可以确保 PostgreSQL 的数据文件持久化存储,即使容器被删除或重建,数据也不会丢失
5、查看
[root@bogon pgdata]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b6de70349e00 postgres:11.16 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp pg9_yun
6、进入容器
[root@bogon _data]# docker exec -it pg9_yun bash
root@b6de70349e00:/# su - postgres
postgres@b6de70349e00:~$ psql
psql (11.16 (Debian 11.16-1.pgdg90+1))
Type "help" for help.
7、创建用户、库、授权
# 创建用户
postgres=# create user test with password '123456';
CREATE ROLE
# 创建数据库
postgres=# create database tct owner test;
CREATE DATABASE
# 授权
postgres=# grant all privileges on database tct to test;
GRANT
#退出
postgres=# \q
8、客户端链接
本文转载自: https://blog.csdn.net/weixin_33347188/article/details/141468575
版权归原作者 0110编程之路 所有, 如有侵权,请联系我们删除。
版权归原作者 0110编程之路 所有, 如有侵权,请联系我们删除。