Postgresql Docker安装运行
mac环境:
1、拉取官方镜像,并创建容器
zhoumatoMacBook-Pro:~ zhou$ docker search postgresql NAME DESCRIPTION STARS OFFICIAL AUTOMATED postgres The PostgreSQL object-relational database sy… 5337 [OK] sameersbn/postgresql 133 [OK] paintedfox/postgresql A docker image for running Postgresql. 77 [OK] orchardup/postgresql https://github.com/orchardup/docker-postgres… 45 [OK] zhoumatoMacBook-Pro:~ zhou$ docker pull postgres // 拉取官方镜像 zhoumatoMacBook-Pro:~ zhou$ docker run --name pg -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres // 生成容器
解释:
run
,创建并运行一个容器;
--name
,指定创建的容器的名字;
-e POSTGRES_PASSWORD=password
,设置环境变量,指定数据库的登录口令为password
;
-p 5432:5432
,端口映射将容器的5432端口映射到外部机器的5432端口;
-d ,后台运行
postgres
,指定使用postgres
作为镜像。
2、查看容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 08f294e43217 postgres "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:5432->5432/tcp pg
关键点: 可能有一些坑,最重要的一点是docker命令中参数的顺序。
例如端口映射的-p 5432:5432
的位置如果过于靠后,则会导致映射失败。
参考传送:https://blog.csdn.net/liuyueyi1995/article/details/61204205
3、连接数据库:
如果本地安装了postgres客户端:
$ psql -U postgres -h 127.0.0.1 -p 5432 Password for user postgres:
使用容器连接:
docker exec -it pg psql -U postgres -d postgres docker exec -it pg psql -U postgres -d postgres -h 127.0.0.1 -p 5432 docker exec -it pg psql -U postgres -d postgres -h localhost -p 5432
另外一种连接,查看容器服务的运行ip:
zhoumatoMacBook-Pro:~ zhou$ docker inspect pg |grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2", zhoumatoMacBook-Pro:~ zhou$ docker exec -it pg psql -U postgres -d postgres -h 172.17.0.2 -p 5432 Password for user postgres: psql (10.5 (Debian 10.5-1.pgdg90+1)) Type "help" for help. postgres=#