操作系统:Linux centos7
1、拉取镜像
解释:
docker pull kartoza/postgis
这个是拉取最新的(即lastest),当然也可以指定版本:
kartoza/postgis:[postgres_version]-[postgis-version]
当前最近几个组合版本有:
11.0-2.5
10.0-2.4
9.6-2.4
# 拉取 postgresql 10.0 版本以及postgis 2.4 版本
$docker pull kartoza/postgis:10.0-2.4
$docker pull kartoza/postgis:11.0-2.5
$docker pull kartoza/postgis:9.6-2.4
二、查看镜像
[root@localhost docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE kartoza/postgis 10.0-2.4 8d0a4d143a7a 4 months ago 662MB mysql 5.7 cd3ed0dfff7e 15 months ago 437MB |
三、运行容器
$docker run -t --name postgressql --restart always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -d kartoza/postgis:10.0-2.4
[root@localhost docker]# docker run -t --name postgressql --restart always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -d kartoza/postgis:10.0-2.4 4d127c02c7b11e37575fc4f7c28707649383e1f615332ab94cec18a7173e6322
|
配置解释:
run,创建并运行一个容器;
–name,指定创建的容器的名字postgresql ;
-e POSTGRES_USER=postgres 设置环境变量,指定数据库用户名为postgres
-e POSTGRES_PASSWORD=postgres,设置环境变量,指定数据库的登录口令为123456
-p 5432:5432,端口映射将容器的5432端口映射到外部机器的5432端口;
-d kartoza/postgis:10.0-2.4,允许该容器以守护态(Daemonized)形式运行于后台
-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了
-t 让docker分配一个伪终端(pseudo-tty)并绑定到该容器的标准输入上(这是为了在 交互模式下用户可以通过所创建的终端来输入命令)
四、查看进程
[root@localhost docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4d127c02c7b1 kartoza/postgis:10.0-2.4 "/bin/sh -c /docker-…" 9 minutes ago Up 9 minutes 0.0.0.0:5432->5432/tcp postgressql af35448d73cd mysql:5.7 "docker-entrypoint.s…" 6 months ago Up 15 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysqltest
|
五、客户端连接postgres
Navicat连接postgres成功。
连接端口:5432
数据库名:postgres
参考:
https://www.cnblogs.com/dengxiaoning/p/12173605.html
https://github.com/postgis/docker-postgis/blob/master/10-2.5/Dockerfile
#docker下查询开启的进程
$docker ps
#docker下停止进程
$docker stop id
#docker 删除进程
$docker rm id
#docker删除镜像
$docker rmi 镜像id