Postgresql是最流行的几种开源数据库之一,使用Docker快速部署与管理Postgresql的基本操作步骤与流程如下:
- 安装docker,参见Linux系统下安装docker步骤;
- 拉取postgreSQL的docker镜像文件:
docker pull postgres:latest
- 创建 docker volume,名字为“dv_pgdata”(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):
docker volume create dv_pgdata
- 启动容器,用-v来指定把postgres的数据目录映射到上面创建的dv_pgdata里面:
# docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres:latest.
如果要映射的是windows下的路径,可以使用如下命令:docker run –name my_postgres -v D:\Docker\dv\postgres\data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxxx -p 5432:5432 -d postgres:latest
- 这时候查看已存在的docker volume:
docker volume ls
- 查看volume信息:
docker inspect dv_pgdata
- 在宿主机,也可以直接查看volume里的内容:
cd /var/lib/docker/volumes/dv_pgdata/_data
ll
- 查看postgresql:
#docker exec -it 618 bash
(618替换为对应的对应的容器id)
psql -U postgres
psql
Type "help" for help.
- 更多的时候,我们希望能用图形界面来管理和操作数据库,可以部署pgadmin工具(例如下面),然后在浏览器中访问宿主机的5080端口,便能打开与管理pgadmin。
docker pull dpage/pgadmin4:latest
docker run -d -p 5080:80 --name pgadmin -e
PGADMIN_DEFAULT_EMAIL=xxxx@xxx.com
-e PGADMIN_DEFAULT_PASSWORD=xxxxxxxx dpage/pgadmin4
- 需要注意的是,docker中的run命令用来创建并运行容器,在创建完容器之后,以后可以用docker start 和docker stop来管理容器。针对上述两个命名容器,在后续使用时可以使用以下命令启停:
docker start my_postgres
docker stop my_postgres
docker start pgadmin
docker stop pgadmin