首先要拉取 pq的image:
docker pull postgres
,
拉取后可以用 docker image ls
查看是否拉取镜像成功。
同理,一同拉取pgadmin4方便查看数据:
docker pull dpage/pgadmin4
。
然后运行image,生成container,运行pq和pgadmin:
注意,因为数据库需要存储空间,配合docker运行就需要volume,注意下方两种volume创建方式:
docker run -d -p 5432:5432 --name postgresql -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=pass123 postgres
--name 将postgresql 这个名字分配给这个实例,可以用这个直接启动容器,
-d 是detached模式运行,-p是映射端口,--name为container命名,
-v 是创建名为pgdata的volume,-e 是创建环境变量 。
或者 先创建volume
docker volume create postgres-volume
,
再创建pq container:
docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=your_password postgres
-v 把容器挂载到刚创建好的volume上,
-d 将以分离模式运行此容器,以便它在后台运行。
--name 将名称“postgres13”分配给您的容器实例名字,通过这个名字以后可以直接启动
-p会将 PostgreSQL 容器端口 5432 绑定到主机上的相同端口,外部通过5432这个命令可以直接访问
-v选项将容器内的目录/var/lib/postgresql绑定到postgres-volume上,保证你以后的数据不会丢失
-e设置环境变量。在这种情况下,PostgreSQL表示容器的密码
用 docker ps
可以查看容器是否正常运行
如果不正常运行, docker logs 容器名
可以查看日志。
然后开启一个pgadmin 容器实例,这样可以通过web平台管理数据库:
docker run -d -p 5433:80 --name pgadmin4 -e [email protected] -e PGADMIN_DEFAULT_PASSWORD=123456 dpage/pgadmin4
打开浏览器访问pgadmin4:http://localhost:5433/
账户密码分别是 运行pgadmin时候设置的,
进入pgadmin 的dashboard知乎,创建服务器:
名字按照需要取一个:
主机地址写:host.docker.internal ,因为运行在docker里边,不能写localhost,
用户名填写postgres,因为默认username是postgres,密码根据创建pq时候填写的-e设置的环境变量来,