本文档以14.1版本为例,具体的最新版本请自行上docker hub查询
拉取官方镜像

docker pull postgres:14.1

创建挂载数据文件夹

cd /home
mkdir postgresql
cd postgresql
mkdir data

启动数据库

docker run -d --name postgresql --restart always -v /home/postgresql/data/:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:14.1
参数 作用
-d 启动后在后台运行,不打印日志
–name 容器名 给容器命名,方便管理,也可以不写此参数
–restart always 如果容器死掉,就自动将其拉起,也可以不写此参数
-v 宿主机路径:容器内路径 将容器内指定路径挂载出来到宿主机中,这里是把数据库本地存储的目录挂出来,保证容器销毁以后数据还在
-p 宿主机端口:容器内端口 将宿主机端口与容器内端口进行映射,postgreSQL默认的容器内端口是5432,容器外端口可以根据需要自己调整
-e POSTGRES_PASSWORD=密码 设置环境变量值。这里是设置了数据库的密码,可以自己设定

现在数据库就启动了,可以用navicat连看看
一般我们还希望部署一个pgAdmin4来对PostgreSQL进行管理
dpage/pgadmin4是pgAdmin4的官方镜像

docker pull dpage/pgadmin4:6.1
docker run -d --name pgadmin --restart always -p 5080:80 -e 'PGADMIN_DEFAULT_EMAIL=pekkle@abc.com' -e 'PGADMIN_DEFAULT_PASSWORD=你的密码' -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' dpage/pgadmin4:6.1
参数 作用
-d 启动后在后台运行,不打印日志
–name 容器名 给容器命名,方便管理,也可以不写此参数
–restart always 如果容器死掉,就自动将其拉起,也可以不写此参数
-p 宿主机端口:容器内端口 将宿主机端口与容器内端口进行映射,postgreSQL默认的容器内端口是5432,容器外端口可以根据需要自己调整
-e ‘PGADMIN_DEFAULT_EMAIL=用户名’ 设置登陆用用户名,最好是email的格式
-e ‘PGADMIN_DEFAULT_PASSWORD=你的密码’ 设置登陆密码,自己记住

现在pdAdmin4就起来了,可以浏览器访问5080端口看页面


另外据本人实测,14.1版本的PostgreSQL用NavicatPremium12打开以后,是看不到里面的表的,需要升级到NavicatPremium15版本,才能正常使用navicat进行操作
你也可以选择直接用pgAdmin4去查看和操作

参考文档

用docker运行postgreSQL

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐