RFS_Server_03 在docker中安装配置GeoServer、PostGIS

操作描述:在Linux Ubuntu 20.04系统的Docker中安装PostGIS、GeoServer

(Ubuntu 20.04系统下安装Docker,参考如下:)

docker安装操作 - Preyer - 博客园

Docker 基础 - lqqgis - 博客园

1    安装Nginx(可以跳过)

1-1    查看docker里面的镜像,刚安装的Docker中没有任何镜像

docker images

1-2    拉取安装最新版本nginx

docker pull nginx

*PS:可以在官网查询docker支持的软件版本。

1-3    运行nginx

docker run -d nginx    # 运行nginx,-d意为后台运行

1-4    运行以下代码,检查nginx是否正常启动

docker ps    # 查看正在运行的容器,检查是否包含nginx服务

1-5    关闭nginx容器,开始下一步配置

docker stop <CONTAINER ID>or<NAMES>
docker rm <CONTAINER ID>or<NAMES>

已完成docker中的Nginx安装,但没有进行端口映射,无法直接访问。

1-6    开启用于开发的nginx容器

开启nginx容器,名称为nginx01。配置接口,80:80* 中前一个端口为云服务器80端口,后一个为nginx容器的80端口。

docker run --name nginx01 -p 80:80 nginx    # 前台运行nginx
docker run -d --name nginx01 -p 80:80 nginx    # -d表示后台运行nginx

请确认云服务器安全组中已经打开80端口,否则无法访问!

如果运行成功,可以通过IP地址:80看到“Welcome to Nginx”欢迎页面。

2    安装并配置PostGIS、GeoServer

2-1    通过离线镜像压缩包安装PostGIS、GeoServer
安装需要经历几个阶段:上传镜像-> 将镜像存入docker中 -> 使用镜像创建容器 可以将镜像理解为函数,而创建容器则是实例化的过程。

/root/ 路径下新建文件夹docker,将两个镜像压缩包 lqqgis_geoserver_2.23.0.tarlqqgis_postgis_pg-13.10.tar 上传至 /root/docker/

运行以下代码将镜像存入docker:

cd /root/docker/    # 转到镜像压缩包所在的路径下
docker load -i lqqgis_geoserver_2.23.0.tar    # 将GeoServer载入Docker
docker load -i lqqgis_postgis_pg-13.10.tar    # 将PostGIS载入Docker

检查docker镜像列表,是否成功载入PostGIS、GeoServer

docker images

2-2    开启PostGIS容器(只设置了端口和密码,如果要同时挂载路径,跳到2-4)

新开启运行Postgre容器,容器名称设置为pg01。配置接口,8432:5432中前一个端口为云服务器8432端口,后一个为容器的5432端口。使用PostGIS默认账户名称postgres,密码自定义为12345678

docker run -d --name pg01 -p 8432:5432 -e POSTGRES_PASSWORD="12345678" lqqgis/postgis:pg-13.10

2-3    进入pg01容器的内核(属于搞着玩儿,可以跳过)

挂载PostGIS容器的数据存储路径与服务器Ubuntu20.04系统的数据存储路径,进入pg01容器下的操作系统

docker exec -it 容器id /bin/bash    # 进入pg01容器的操作系统
cd /var/lib/postgresql/data    # 到PostGIS数据库存储数据的路径下

exitCtrl+C退出容器操作系统

2-4    开启PostGIS容器,并挂载文件存储路径

新开启运行Postgre容器,容器名称设置为pg01。配置接口,8432:5432中前一个端口为云服务器8432端口,后一个为容器的5432端口。使用PostGIS默认账户名称postgres,密码自定义为12345678

与2-2相比,增加了挂载文件存储路径,通过-v /root/projects/pg_data:/var/lib/postgresql/data这一句设置,将云服务器系统的/root/projects/pg_data路径pg01容器内核/var/lib/postgresql/data挂载。

docker run -d --name pg01 -e POSTGRES_PASSWORD="12345678" -v /root/projects/pg_data:/var/lib/postgresql/data -p 8432:5432 lqqgis/postgis:pg-13.10

2-5    开启GeoServer容器,并挂在文件存储路径
新开启运行GeoServer容器,容器名称设置为geoserver01。配置接口,8735:8080冒号前为云服务器8735端口,后一个为容器的8080端口。GeoServer默认的用户名是admin,默认密码是geoserver。

docker run -d --name geoserver01 -p 8735:8080  -v /root/projects/geoserver_data:/var/lib/geoserver_data lqqgis/geoserver:2.23.0

通过IP地址:8735即可访问页面。

页面上显示Error 404 - Not Found

No context on this server matched or handled this request.

Contexts known to this server are:

点击Context Path下的/geoserver进入GeoServer管理页面

附录:常见操作及配置

参考文档:docker部署geoserver_geoserver docker-CSDN博客

# 命令说明
docker run
--name geoserver #容器名称
-d #后台运行容器,并返回容器ID
-p 8089:8089 #容器端口(对外):服务端口 geoserver默认启动的端口是8080
-e GEOSERVER_ADMIN_USER=admin #指定管理用户
-e GEOSERVER_ADMIN_PASSWORD=geoserver #指定管理用户密码
-v /mydata/geoserver/data_dir:/data_dir #数据挂载地址
kartoza/geoserver #镜像名称

#我配置的命令行
docker run --name geoserver01 -d -p 8735:8080 -e GEOSERVER_ADMIN_USER=geoserver -e GEOSERVER_ADMIN_PASSWORD=12345678 -v /root/projects/geoserver_data:/var/lib/ lqqgis/geoserver:2.23.0

开机自动启动geoserver

docker update geoserver --restart=always

常用操作:

ss -tuln    # 查看所有端口状态
docker ps    # 查看正在运行的容器
docker ps -a    # 查看所有的容器,包括没有运行的
docker stop <CONTAINER ID>or<NAMES>    # 通过<CONTAINER ID>或<NAMES>停止运行容器
docker rm <CONTAINER ID>or<NAMES>     # 通过<CONTAINER ID>或<NAMES>移除容器
* 移除容器前需要确认已经停止运行

默认账号:

# Geoserver: 默认账号:admin默认密码:geoserver
# PostGIS: PostgreSQL的默认用户名是"postgres",默认密码为空。此教程中将密码设置为12345678
posted @ 2024-05-30 13:14  Preyer  阅读(117)  评论(0编辑  收藏  举报