使用Docker部署postgresql
postgresql数据库在Docker中的镜像的名称为postgres
,可以从DockerHub中pull下来,如果pull不下来那么很大概率是网络问题导致的,这时候你可能需要在网上找一些能用的镜像源,以成功拉取postgres
镜像。
有了postgres
的镜像之后,你就可以在本地的Docker创建一个postgres
的容器并运行。我们有两种方式来创建容器:
- 直接使用命令行来创建
postgres
的容器并运行; - 使用
docker-compose
来创建postgres
的容器并运行;
这里先介绍使用命令行的方式来创建postgres
容器的方式:
docker run -d
--name postgres-exprdb
-p 5432:5432
-e POSTGRES_PASSWORD=123456
-e POSTGRES_USER=aderversa
-e POSTGRES_DB=testdb
-v ~/postgresql/data:/var/lib/postgresql/data
postgres
-e
是用来设置postgres
容器中环境变量的值的,有些特殊的环境变量将会影响到启动后的postgresql
的一些参数,比如postgresql
数据库的密码、用户等等。具体一些环境变量的含义可以查看dockerhub中有关于环境变量的介绍,本文的最后也会介绍一些环境变量的含义。-p
将PostgreSQL的5432端口暴露到宿主机的5432端口,方便我们在外部访问容器内的PostgreSQL服务。-v
将容器内的/var/lib/postgresql/data
文件夹挂载到宿主机的~/postgresql/data
文件夹下,这样数据库中的数据就不会因为我们删除了容器而丢失。你需要自己定义好这个数据文件夹该挂载到自己主机的什么地方上,这里我给出的值仅做参考。--name postgres-exprdb
指定创建的PostgreSQL容器的名字。-d
表示该容器在后台运行,并打印创建容器的ID到控制台。postgres
是我们所使用的镜像。
运行上述命令,使用docker ps
查看容器状态:
CONTAINER ID IMAGE COMMAND CREATED