docker 安装 geoserver

docker 安装 geoserver

文章目录

  • [docker 安装 geoserver](#docker 安装 geoserver)

一、准备工作

shell 复制代码
# 获取最新镜像
docker pull kartoza/geoserver
shell 复制代码
#创建数据持久化目录
/usr/local/application/geoserver/data_dir

#授权
chmod 777 -R /usr/local/application/

二、创建容器

shell 复制代码
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 关键字所在目录

shell 复制代码
find . -type d -name WEB-INF
sql 复制代码
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 目录即可。

shell 复制代码
#通过docker cp 命令,将宿主机上文件拷贝进容器。
docker cp /宿主机目录/插件jar 容器id:/usr/local/tomcat/webapps/geoserver/WEB-INF/lib
3.3 创建新镜像

​ 容器安装完插件后,可以基于容器,创建新镜像,后期基于该镜像创建的容器,都将拥有该插件。

shell 复制代码
#语法 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应用。

yaml 复制代码
#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;
}
相关推荐
别挡39 分钟前
CentOS Stream 8中安装和使用 Docker
linux·docker·centos
愤怒的代码2 小时前
Centos使用阿里云镜像安装docker
linux·docker·centos
汪公子4922 小时前
使用docker部署考试系统
docker
大江东去了吗3 小时前
k8s HPA
云原生·容器·kubernetes
好奇的菜鸟4 小时前
如何使用Docker快速启动Nginx服务器
服务器·nginx·docker
花菜回锅肉4 小时前
开源可视化大屏superset Docker环境部署
数据仓库·docker·容器·开源·superset
wd5205214 小时前
常用环境部署(十七)——Docker安装pritunl+openvpn
运维·docker·容器
Watermelo6176 小时前
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
java·spring boot·docker·微服务·云原生·容器·devops
摸鱼的张三6 小时前
Docker的基本概念和优势
docker
Richardlygo6 小时前
编写Dockerfile第二版
docker·容器