拉取-postgresql-镜像
docker pull postgres
创建本地卷
Docker 会自动在 /var/lib/docker/volume/ 路径下为主机上的卷创建一个目录。该卷可以在容器之间共享和重用, 且默认会一直存在。
docker volume list # 列出 Docker 卷 docker volume rm pgdata # 删除 Docker 卷
docker volume create pgdata # 创建 Docker 卷 docker volume inspect pgdata # 检查 Docker 卷
构建镜像容器)
docker run -it \ --name postgres \ --restart always \ -e TZ='Asia/Shanghai' \ -e POSTGRES_PASSWORD='abc123' \ -e ALLOW_IP_RANGE=0.0.0.0/0 \ -v /home/postgres/data:/var/lib/postgresql \ -p 55435:5432 \ -d postgres
名称 | 解释 |
---|---|
—name | 自定义容器名称 |
—restart always | 设置容器在 docker 重启时自动启动容器 |
-e POSTGRES_PASSWORD | Postgresql 数据库密码 |
-e ALLOW_IP_RANGE=0.0.0.0/0 | 表示允许所有 IP 访问 |
-e TZ=‘Asia/Shanghai’ | 设置时区 |
-v [path] : [path] | 本地目录映射 (本地目录 : 容器内路径) |
-p 554 35:5432 | 端口映射 (主机端口 : 容器端口) |
-d postgres | 镜像名称 |
进入-postgres-容器
docker exec -it postgres bash
切换当前用户再登录数据库
将当前 root 切换成 postgres
su postgres
输入用户名/密码执行完后,再根据提示输入
psql -U postgres -W
输入密码,登录成功
创建新用户
根据第五步,先切换到 Linux 用户 postgres,并执行如下 psql
create user test with password 'test'; # 创建数据库新用户 CREATE DATABASE testdb OWNER test; # 创建用户数据库 GRANT ALL PRIVILEGES ON DATABASE testdb TO test; # 将 testdb 数据库的所有权限都赋予 test \q # 使用命令 \q 退出 psql
注意:语句要以分号结尾。密码要用单引号括起来。