一、准备工作
# 获取最新镜像 docker pull kartoza/geoserver
#创建数据持久化目录 /usr/local/application/geoserver/data_dir #授权 chmod 777 -r /usr/local/application/
二、创建容器
docker run \ --name geoserver \ -d \ -p 8090:8080 \ --restart always \ -e geoserver_admin_user=admin \ -e geoserver_admin_password=geoserver \ -e geoserver_data_dir=/opt/geoserver/data_dir \ -v /usr/local/application/geoserver/data_dir:/opt/geoserver/data_dir \ kartoza/geoserver
容器启动后,在浏览器中访问 服务器ip:8090/geoserver,访问成功效果如下
三、安装插件
如果通过docker部署的geoserver中缺失部分插件(mysql 等),那么可以去官网下载对应版本的插件,再将插件解压到 geoserver/web-inf/lib
目录下,重启容器,即可实现插件加载。
3.1 插件下载
到官方插件下载地址,确定自己geoserver的版本,找到插件列表中对应插件(例如mysql)即可下载
下载完成后,解压缩,将jar文件拷贝到geoserver/web-inf/lib中
3.2 将插件拷贝进容器
将下载的插件解压后,可以看到对应的jar包。然后将插件所有jar包,拷贝进插件默认安装目录下即可。可以通过 find
命令,查找 web-inf
关键字所在目录
find . -type d -name web-inf
find: ‘./etc/ssl/private': permission denied find: ‘./proc/tty/driver': permission denied find: ‘./proc/1/map_files': operation not permitted find: ‘./proc/8442/map_files': operation not permitted find: ‘./proc/8465/map_files': operation not permitted find: ‘./root': permission denied ./usr/local/tomcat/webapps/geoserver/web-inf ./usr/local/tomcat/webapps/root/web-inf ./usr/local/tomcat/webapps/docs/web-inf ./usr/local/tomcat/webapps/docs/appdev/sample/web/web-inf ./usr/local/tomcat/webapps/examples/web-inf ./usr/local/tomcat/webapps/host-manager/web-inf ./usr/local/tomcat/webapps/manager/web-inf find: ‘./var/cache/apt/archives/partial': permission denied find: ‘./var/cache/ldconfig': permission denied
从上述查找结果中,看到 /usr/local/tomcat/webapps/geoserver/web-inf
目录,即为geoserver部署主要目录。接下来只需要将插件拷贝进该目录下的lib 目录即可。
#通过docker cp 命令,将宿主机上文件拷贝进容器。 docker cp /宿主机目录/插件jar 容器id:/usr/local/tomcat/webapps/geoserver/web-inf/lib
3.3 创建新镜像
容器安装完插件后,可以基于容器,创建新镜像,后期基于该镜像创建的容器,都将拥有该插件。
#语法 docker commit [options] container [repository[:tag]] options说明: -a :提交的镜像作者; -c :使用dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。 #基于容器e218edb10161,生成新镜像runoob/ubuntu:v2 runoob@runoob:~$ docker commit -m="has update" -a="lifp" e218edb10161 runoob/ubuntu:v2
四、配置 nginx 代理
如果nginx部署在内网服务器,若有互联网ip或者域名,可以用来配置代理的话,那么可以进行如下配置。假如现有域名 www.test.com,该域名80端口已映射到某台机器的端口,那么在该端口所在nginx中,可以进行如下配置,来实现,通过访问 http://www.test.com/geoserver 连接,可以直接访问到内网服务器10.15.11.18 中部署的geoserver应用。
#geoserver代理 location ^~/geoserver/ { proxy_pass http://192.168.11.18:8090/geoserver/; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; }
到此这篇关于docker安装geoserver的方法步骤的文章就介绍到这了,更多相关docker安装geoserver内容请搜索代码网以前的文章或继续浏览下面的相关文章希望
发表评论