操作描述:在Linux Ubuntu 20.04系统的Docker中安装PostGIS、GeoServer
(Ubuntu 20.04系统下安装Docker,参考如下:)
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
在 /root/ 路径下新建文件夹docker,将两个镜像压缩包 lqqgis_geoserver_2.23.0.tar 和 lqqgis_postgis_pg-13.10.tar 上传至 /root/docker/
运行以下代码安装:
cd /root/docker/ # 转到镜像压缩包所在的路径下
docker load -i lqqgis_geoserver_2.23.0.tar # 安装GeoServer(仅载入,不运行)
docker load -i lqqgis_postgis_pg-13.10.tar # 安装PostGIS(仅载入,不运行)
检查docker镜像列表,是否成功安装PostGIS、GeoServer
docker images
2-2 开启PostGIS容器(只设置了端口和密码,如果要同时挂载路径,跳到2-4)
新开启运行Postgre容器,名称设置为pg01。配置接口,8432:5432中前一个端口为云服务器8432端口,后一个为nginx容器的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数据库存储数据的路径下
exit 或 Ctrl+C退出容器操作系统
2-4 开启PostGIS容器,并挂载文件存储路径
新开启运行PostGIS容器,名称设置为pg01。配置接口,8432:5432中前一个端口为云服务器8432端口,后一个为nginx容器的5432端口。使用PostGIS默认账户,名称为postgres,密码为12345678。
与2-2相比,增加了挂载文件存储路径,通过-v /root/projects/pg_data:/var/lib/postgresql/data这一句设置,将pg01容器内核root/projects/pg_data路径与云服务器系统的/root/projects/pg_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端口,后一个为nginx容器的8080端口。使用GeoServer默认账户,名称为admin,密码为12345678。
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>移除容器
* 移除容器前需要确认已经停止运行
标签:RFS,03,容器,端口,PostGIS,nginx,geoserver,docker
From: https://www.cnblogs.com/preyer/p/18222150