本文档以13.2版本为例,具体的最新版本请自行上docker hub查询
拉取官方镜像
docker pull postgres:13.2
创建挂载数据文件夹
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:13.2
参数 | 作用 |
---|---|
-d | 启动后在后台运行,不打印日志 |
--name 容器名 | 给容器命名,方便管理,也可以不写此参数 |
--restart always | 如果容器死掉,就自动将其拉起,也可以不写此参数 |
-v 宿主机路径:容器内路径 | 将容器内指定路径挂载出来到宿主机中,这里是把数据库本地存储的目录挂出来,保证容器销毁以后数据还在 |
-p 宿主机端口:容器内端口 | 将宿主机端口与容器内端口进行映射,postgreSQL默认的容器内端口是5432,容器外端口可以根据需要自己调整 |
-e POSTGRES_PASSWORD=密码 | 设置环境变量值。这里是设置了数据库的密码,可以自己设定 |
现在数据库就启动了,可以用navicat连看看
一般我们还希望部署一个pdAdmin4来对PostgreSQL进行管理
dpage/pgadmin4是pdAdmin4的官方镜像
docker pull dpage/pgadmin4:5.0
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:5.0
参数 | 作用 |
---|---|
-d | 启动后在后台运行,不打印日志 |
--name 容器名 | 给容器命名,方便管理,也可以不写此参数 |
--restart always | 如果容器死掉,就自动将其拉起,也可以不写此参数 |
-p 宿主机端口:容器内端口 | 将宿主机端口与容器内端口进行映射,postgreSQL默认的容器内端口是5432,容器外端口可以根据需要自己调整 |
-e 'PGADMIN_DEFAULT_EMAIL=用户名' | 设置登陆用用户名,最好是email的格式 |
-e 'PGADMIN_DEFAULT_PASSWORD=你的密码' | 设置登陆密码,自己记住 |
现在pdAdmin4就起来了,可以浏览器访问5080端口看页面
另外据本人实测,13.2版本的PostgreSQL用NavicatPremium12打开以后,是看不到里面的表的,需要升级到NavicatPremium15版本,才能正常使用navicat进行操作
你也可以选择直接用pdAdmin4去查看和操作