赞
踩
如何快速的在本机启动postgreSQL?
mkdir -p /data1/postgresql12
chown -R 1001:1001 /data1/postgresql12
bitnami 提供的postgresql镜像中,有一个postgres用户要在该创建data目录,需要给一下权限
进入镜像:cat /etc/passwd
postgres: x:1000:1000::/home/postgres:/bin/sh
避免下面的报错
postgresql 06:39:19.64 WARN ==> Lack of permissions on data directory!
chmod: changing permissions of ‘/bitnami/postgresql/data’: Operation not permitt
docker run -d --restart=always --name postgres -v /data1/postgresql12:/bitnami/postgresql -e POSTGRES_PASSWORD=Aa@123 -p 5000:5432 postgresql:12.8.0
-d :守护进程,后台运行该容器
--restart=always :开机自启动
--name postgres:容器的名称
-v :目录映射,容器目录挂载到宿主机目录,格式: <宿主机目录>:<容器目录>
-e :设置启动环境变量
-p :启动的端口号, 宿主机端口:容器内服务的端口
访问地址:服务器IP:5000 (端口可以根据自己的需要修改)
账号/密码:postgres/Aa@123
# 在公共仓库中下载 docker pull bitnami/postgresql:12.8.0 # 查看镜像 docker images |grep postgresql # 打tag推送到本地仓库 docker tag postgresql:12.8.0 docker.公司域名.com/library/postgresql:12.8.0 # 推送到本地仓库 docker push docker.公司域名com/library/postgresql:12.8.0 # 镜像导出,在没有网络的情况下转移 docker save postgresql:12.8.0 > postgresql-12.8.0.tar # 镜像加载 docker load < postgresql-12.8.0.tar # 查询服务的ID docker ps |grep postgresql 运行中的容器 docker ps -a |grep postgresql 全部的容器 #根据id查 日志 docker logs -f f8911198f0d3 --tail=100 # 查看该镜像的元信息 docker inspect f8911198f0d3 # 重启镜像服务 docker restart f8911198f0d3 # 停止镜像服务 docker stop f8911198f0d3 #启动镜像服务 docker stop f8911198f0d3 #删除镜像服务 docker rm f8911198f0d3 #删除镜像 docker rmi postgresql:12.8.0 #进入容器 docker exec -it f8911198f0d3 bash 容器中的数据库目录 cd /bitnami/postgresql/data 宿主机中的的目录
# 进入容器 docker exec -it f8911198f0d3 bash # 进入postgresql客户端 psql -h localhost -U postgres -p 5432 #查看所有数据库 \l # 创建数据库 create database 数据库名字(cp_user); #进入某个数据库 \c 数据库名字(cp_user) # 创建表 drop table if exists "public"."t_user"; create table "public"."t_user" ( "id" int4 not null, "name" varchar(255) collate "pg_catalog"."default" ); comment on column "public"."t_user"."id" is '编号'; comment on column "public"."t_user"."name" is '名称'; alter table "public"."t_user" add constraint "t_user_pkey" primary key ("id"); # 查看数据库中的表 \dt 表名 : user # 插入数据 insert into "public"."t_user"("id", "name") values (1001, 'lisa'); insert into "public"."t_user"("id", "name") values (1002, 'jack'); #查看某个表的所有数据 select * from 表名 select * from t_user; 如果表名是user,因user是保留此,查询需要 select * from public.user; # 修改某条数据 update "public"."t_user" set "name" = 'jack' where "id" = 1002; # 删除某条数据 delete from t_user where id =1001 # 添加字段 alter table t_user add age varchar(32); # 修改字段的注释 comment on column t_user.age is '年龄'; # 导出数据库 pg_dump -U 用户名 数据库名 > 导出文件名 # 导入数据库 psql -U 用户名 数据库名 < 导入文件名 : #退出数据库 \q 或 ctrl + z # 查询特定模式下的所有表名 select tablename from pg_tables where schemaname = 'public'` # 备份数据库。 使用命令`pg_dump -U 'username' -p 'port number' -d 'database' > 'dump file name'`
用户账户的信息存放在/etc/passwd文件中;
超级用户root(0)
程序用户(1~499)
普通用户(500~65535)
用户名 密码 uid gid 用户说明 家目录 shell解释器
python : x : 1001 : 1001 : : /home /python : /bin/sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。