前情回顾
之前写过一篇Linux环境下tomcat部署geoserver的帖子,在这里给自己引一下流: Linux系统下搭建GoeServer+PostGIS的地图服务发布体系。
最近又搞明白了之前为啥docker部署完不能访问,因此重新写一篇帖子补充一下。
拉取镜像
docker pull kartoza/geoserver:2.22.0
用上述命令通过docker拉取,如果是内网服务器,可以在外网服务器中拉取完毕,再将镜像导出tar包拷贝到内网服务器中即可。至于怎么导出镜像,百度其他帖子说了很多,这里就偷个懒不贴了。
启动容器
docker run --name geoserver -d -p 8080:8080 -e GEOSERVER_ADMIN_USER=admin -e GEOSERVER_ADMIN_PASSWORD=geoserver -v /dockerfile/geoserver/data_dir:/data_dir kartoza/geoserver:2.22.0
具体参数:
-p 8080:8080 端口映射,熟悉docker的都知道这里的意思是指将容器内8080映射给容器外的8080,其中关系为:“容器外”:“容器内”。值得注意的是,geoserver默认端口为8080,windows版本也是一样,只是Windows版本在安装时可以修改,而容器部署时,上述命令修改的是容器用的端口,并不能修改容器内的geoserver所用的端口,如果要改只能进入容器找到geoserver的配置文件进行修改。 之前我没成功的原因也是误以为docker run 命令可以修改容器内geoserver的配置,造成端口不通导致geoserver部署失败。
GEOSERVER_ADMIN_USER=admin 指管理员账户名
GEOSERVER_ADMIN_PASSWORD=geoserver 指管理员密码
-v /dockerfile/geoserver/data_dir:/data_dir 指geoserver文件目录,后续一些本地影像数据、切片数据、配置文件等需要放在这个目录下,跟端口映射一样,映射逻辑为: “外部文件目录”:“容器内文件目录”。
kartoza/geoserver:2.22.0 为载入后的镜像名称
效果
部署成功后,访问:ip:端口/geoserver,即可。