docker容器导入导出和配置

镜像导入导出

目前的导入导出是 sava/load,export/import ,前者有完整的数据,后者类似于容器的快照,开始搭建时,想直接复制我们服务器中运行的容器,导出后在docker中运行后 一直报

No command specified” from re-imported docker image/container

后面有了解 sava/load 会有完整的数据 但是 export的tar包这个命令将导入镜像文件和参数

关于 gdal容器

目前使用的gdal的容器是 osgeo/gdal:ubuntu-small-3.2.1

docker run -itd –privileged -v /usr/local/gdal/data/:/home   
–name gdal_python osgeo/gdal:ubuntu-small-3.2.1

  • 容器的名称需要和上面 application-boot.yml的关联上,需要通过容器的主机 ssh 控制 docker 下的容器
  • 需要复制 shp2pg.py 到 /usr/local/gdal/data/

后面的版本是有添加 gdal的环境

1
2
3
4
5
6
7
8
9
FROM osgeo/gdal:ubuntu-small-3.2.1
MAINTAINER gdallikedemo
RUN add-apt-repository ppa:openjdk-r/ppa && \
  apt-get update && \
  apt-get install -y java-1.8.0-openjdk && \
  apt-get clean;
COPY NAME.jar /home/NAME.jar
# RUN nohup java -jar /home/NAME.jar >/dev/null 2>&1 &
CMD ["java","-jar","/home/NAME.jar"]

搭建pgsql集群

搭建集群 可以参考之前的文档 我这边只是列出清单

集群名称
pg_master pg_hba.conf( 配置网络和集群的IP,注意配置 所有从服务器的IP),postgresql.conf(配置数据库自己的服务和资源使用)
pg_slaver1 同上,recovery.conf(设置恢复和通信)
pg_slaver2 同上,recovery.conf(设置恢复和通信)

tips:

  • 建议在postgresql.conf 中的日志打开,日志的配置

logging_collector =on # Enable capturing of stderr and csvlog

日志会在本地的/data/postgresql/data 启动时挂载的点,会有log目录可以找到异常信息

  • 尽量选择复制配置文件,像postgresql.conf这种标准配置文件主从有区别要注意

nginx

拉取 nginx镜像后

1
2
3
4
5
6
7
8
9
docker run --name nginx -p 80:80 --restart=always -v \

/data/nginx/html:/etc/nginx/html/   \

-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

-v /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \

nginx:1.19.6

一个要注意的是 网上都是nginx默认的挂载是/usr/share/nginx/html ,使用依照了 官方docker版本我挂载了数据,一直都有是404 ,后面看日志是

2021/01/13 21:56:42 [error] 21#21: *1 “/etc/nginx/html/index.html” is not found (2: No such file or directory), client: 172.17.0.1, server: localhost, request: “GET / HTTP/1.1”, host: “127.0.0.1”

172.17.0.1 - - [13/Jan/2021:21:56:42 +0000] “GET / HTTP/1.1” 404 153 “-“ “curl/7.29.0”

这边关联到/etc/nginx/html/ 后正常可以看到 welcome nginx的页面

geoserver

目前使用的是官方的 geoserver的集群 主要 是要导出 yaml 的文件

将本地的geoserver 镜像导入 harber的私服中然后再 配置 k8s挂载卷然后编辑

  1. 挂载卷
  2. harber的远程地址

推送镜像到harber

首先 使用命令 docker tag IMAGE_ID NAME:TAG

将load 的镜像设置对应的标签方便后面使用k8s导入的配置文件好找到

push_im.sh文件中的

1
2
3
4
5
6
7
8
9
10
11
# 发布最终版本
# 版本号
version=latest
# 打包镜像
docker build -t NAME:$version .
# 配置标签
docker tag NAME:$version 192.168.7.120/public/NAME:$version
# 推送镜像
docker push 192.168.7.120/public/NAME:$version


version 对应的字段要有 ,同时 harber 地址要改的

上面的这个 docker build -t NAME:$version . 是有个点的, 需要dockerfile文件的