一、简介

介绍:GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。【百度百科】

个人理解:这玩意就是一个数据转换工具。会将各种类型的数据文件,通过GDAL提供的命令或工具,给你转成你需要的格式。比如:做地图的时候,DXF文件,转成,GeoJson文件。我们就是这样用的。

二、安装

1、当前系统版本

[root@localhost gdal-3.2.0]# cat /proc/version
# linux centos 内核el7.x86_64  gcc版本4.8.5
Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020

2、安装步骤

2.1、下载

1、可以去官网下载(推荐)
2、也还可以Debian下载,后者还提供源码和编译好的文件下载(Debian版本)。
3、另外github上也有docker版本:

2.2 、普通安装

2.2.1 尝试安装GDAL,安装gcc以及gcc-c++

参考博客:gdal-3.1.2 linux(Ubuntu) 编译 附SQLite3 PROJ6编译

下载地址:gdal-3.2.0.tar.gz

#上传文件gdal-3.2.0.tar.gz 到 /home/gdal下
[root@localhost]# tar -zxvf gdal-3.2.0.tar.gz
#....省略解压过程
[root@localhost]# mkdir install_file
[root@localhost]# cd gdal-3.2.0
[root@localhost gdal-3.2.0]# pwd
/home/gdal/gdal-3.2.0
[root@localhost gdal-3.2.0]# ./configure --prefix=/home/install_file
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/gdal/gdal-3.2.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
#解析:缺少依赖 [root@localhost gdal-3.2.0]# yum install gcc gcc-c++
#省略下载安装过程
#再次执行./configure --prefix=/home/install_file ,就会发现gcc检测安装成功,因内容太多,详见截图
#最后发现没有PROJ 依赖(这个地方不一定是没有依赖,还可能是你没使用--with-proj指定PROJ的安装文件)
#经过查询博客发现 PROJ 这个坐标转换工具,还需要依赖sqlite,遂,先安装sqlite3
[root@localhost gdal-3.2.0]#


2.2.2、安装依赖SQLITE

参考:博客

#因为之前使用 yum update。就没安装博客上写的安装依赖包
[root@localhost home]# mkdir sqlite;cd sqlite
[root@localhost sqlite]# wget https://sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
# 省略下载过程
[root@localhost sqlite]# tar -zxvf sqlite-autoconf-3400000.tar.gz
# 省略解压过程
[root@localhost sqlite]#mkdir install_file;cd sqlite-autoconf-3400000
#注意执行之前,按照博客,在配置文文件中增加一行(包括#)
#define SQLITE_ENABLE_COLUMN_METADATA 1
#不过我没找到sqlite.c,在sqlite3.c上加的。
#否则,后期在安装GDAL的时候,会报错。详见 [7、安装GDAL中间碰到的坑]
[root@localhost sqlite-autoconf-3400000]# ./configure --prefix=/home/sqlite3/install_file
#执行结果省略,最后结果如下


#有了Makefile就可以执行make命令
[root@localhost sqlite-autoconf-3400000]# make && make install
#执行完毕,回到之前的目录中,即 config命令指定的安装目录
[root@localhost sqlite-autoconf-3400000]# cd ../install_file/
[root@localhost install_file]# ll
total 0
drwxr-xr-x. 2 root root  21 2023-03-29 11:04:13 bin
drwxr-xr-x. 2 root root  43 2023-03-29 11:04:13 include
drwxr-xr-x. 3 root root 135 2023-03-29 11:04:13 lib
drwxr-xr-x. 3 root root  17 2023-03-29 11:04:13 share
#出现了安装文件
#安装博客所说,建立新的连接,使用新版本的sqlite
[root@localhost install_file]# cd /usr/bin
[root@localhost bin]# sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
[root@localhost bin]# mv sqlite3 sqlite3_old
#建议直接生成的/home/sqlite3/install_file/bin拷贝/usr/bin下
[root@localhost bin]# ln -s /home/sqlite3/install_file/bin/sqlite3 /usr/bin/sqlite3
[root@localhost bin]# sqlite3 -version
3.40.0 2022-11-16 12:10:08 89c459e766ea7e9165d0beeb124708b955a4950d0f4792f457465d71b158d318
#环境变量
[root@localhost bin]# vim ~/.bashrc
[root@localhost bin]# source  ~/.bashrc
[root@localhost bin]# echo $PKG_CONFIG_PATH
/home/sqlite3/install_file/lib/pkgconfig:/usr/local/sqlite/lib/pkgconfig:
[root@localhost bin]# sudo ldconfig

2.2.3、安装PROJ

注意:proj安装需要依赖sqlite3,且sqlite3>= 3.11

proj官网下载地址:下载地址

[root@localhost bin]# cd /home;mkdir proj;cd proj
[root@localhost proj]# wget https://download.osgeo.org/proj/proj-8.2.1.tar.gz
--2023-03-29 13:44:01--  https://download.osgeo.org/proj/proj-8.2.1.tar.gz
Resolving download.osgeo.org (download.osgeo.org)... 140.211.15.30
Connecting to download.osgeo.org (download.osgeo.org)|140.211.15.30|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5882136 (5.6M) [application/octet-stream]
Saving to: ‘proj-8.2.1.tar.gz’100%[=================================================================================>] 5,882,136   1.76MB/s   in 3.2s2023-03-29 13:44:11 (1.76 MB/s) - ‘proj-8.2.1.tar.gz’ saved [5882136/5882136][root@localhost proj]# mkdir install_file;cd proj-8.2.1
[root@localhost proj-8.2.1]# ./configure --prefix=/home/proj/install_file
#.......省略前面的
#..................................
checking for TIFF... configure: error: Package requirements (libtiff-4) were not met:No package 'libtiff-4' foundConsider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.Alternatively, you may set the environment variables TIFF_CFLAGS
and TIFF_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.#缺少依赖 安装依赖
[root@localhost proj-8.2.1]# yum install -y libtiff libtiff-devel.x86_64 libcurl-devel.x86_64
#再次执行 编译
[root@localhost proj-8.2.1]# ./configure --prefix=/home/proj/install_file
#截图见截图
[root@localhost proj-8.2.1]# make && make install

只装 yum install -y libtiff libtiff-devel.x86_64 再次使用config进行配置,会报错,需要装:yum install -y libcurl-devel.x86_64


2.2.4、配置环境变量

2.2.5、安装GDAL

[root@localhost home]# cd /home/gdal/gdal-6.3.2
#需要是用参数[--with-proj=$PROJ_INSTALL_PATH]指定proj的安装路径。否则会给你报错,详见[2.2.6章节 4、proj版本问题]
[root@localhost gdal-6.3.2]# ./configure --prefix=/home/gdal/install_file --with-proj=/home/proj/install_file
#报错查看 当前目录下 config.log,进行排错。关于编译的问题不用管。关于check的问题,选择性处理。一般软件支持很多功能,附属功能的插件依赖可以不用管。影响安装的插件依赖必须处理。最后config.log日志最后 exit 0 表示配置成功。可以进行make编译了。中间的错误,查看2.2.6
[root@localhost gdal-6.3.2]#  make & make install

configure成功后的截图

2.2.6、安装中碰到的问题

1 、proj 找不到依赖

iso19111/internal.cpp:48:21: fatal error: sqlite3.h: No such file or directory

#include "sqlite3.h"

找不到头文件的问题。是因为系统没有安装函数

【补充】:

当用交叉编译器编译的时候,也会出现找不到sqlite3.h头文件的情况,解决方法是把sqlite3.h这个头文件放到交叉编译工具目录的 include目录下

执行

#注意 apt,centos里没有这个命令。且yum install libsqlite3-dev 找不到这个依赖
sudo apt-get install libsqlite3-dev 找不到这个依赖
#解决方案:可以将sqlite3.h文件复制到编译工具下
cp /home/sqlite3/install_file/includ/sqlite3.h  /home/proj/proj-8.2.1/include/

2、configure失败

#在当前目录下,查看config.log
ld returned 1 exit status
#表示编译的语法等出错。且 make[2],意味前面有一个错误make[1]导致了这个错误

还有类似的:cannot stat '.deps/sqlite3-shell.Tpo': No such file or directory等等。关于.deps都是依赖问题。

#依赖错误,因为操作系统依赖,不知道是哪个包的依赖,所以统一的全部都在装一下
yum -y install  bzip2 gcc make subversion gcc-c++ sqlite-devel libxml2 libxml2-devel python-devel numpy expat-devel libcurl-devel postgresql postgresql-devel#装完之后,make distclean后,重新make,结果还是报这个错误。经过多次翻找排查。
#出现这个问题是,因为 sqlite-devel没有安装成功
#在有网的电脑上,安装上sqlite-devel,将安装文件拷贝到虚拟机即可
3、gcc版本问题


出现 gcc: error: unrecognized command line option '-V'
这种问题是gcc版本太低了。导致编译出错。根据里面的要求 gcc -qversion >&5
将gcc版本更换为5以上的版本。
更换后还有这两类问题,不用管。一般不会影响安装,进行其他步骤即可。

更换gcc版本方法,不予赘述:CentOS下快速升级gcc版本

4、proj版本问题

中间多次安装不成功,我将proj 8降低到了proj 4版本,重新安装完成后,直接安装GDAL报错。
需要proj >=6的版本。8的版本多次安装不成功,更换6.3.2的版本。
==================
后来才发现。不是版本的问题。而是configure gdal的时候需要使用[--with-proj]属性,
来指定PROJ的安装路径,但是么。。。我没指定,所以,我又双叒叕装了一边PROJ。
5、需要sqlite3>=3.11

#安装PROJ 6 需要sqlite3 >=3.11以上。
#已经安装的,需要配置环境变量
export PKG_CONFIG_PATH=/home/sqlite3/install_file/lib/pkgconfig:$PKG_CONFIG_PATH
#安装完毕后,在/usr/bin下增加proj的命令。(可以不用下面操作,这是configure我未指定PROJ的地址,尝试让脚本识别PROJ的命令,才加的。所以我注释掉了)
#ln -s /home/proj/install_file/bin/proj /usr/bin/proj
#建议直接将 cp -r /home/proj/install_file/bin/* /usr/bin/
6、彻底更换gcc

通过工具切换gcc后,在进行配置GDAL的时候,发现,运行命令是

[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.3.1-20180303/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)#确实 是 7.3.1版本。COLLECT_LTO_WRAPPER指向gcc7版本的lto-wrapper
#但是在 gdal进行configure的时候,根据日志,COLLECT_LTO_WRAPPER指向的是旧版本的gcc。
#直接替换/usr/bin/下关于gcc的命令,会使编译的COLLECT_LTO_WRAPPER指向正确的gcc。但是C的版本无法保证是正确的。。。导致C的部分无法编译。

参考博客:安装最新版本的GCC编译器(./configure执行编译报错 C++ compiler too old)

更换GCC的时候,源码安装失败,根据提示安装GMP 4.2+,MPFR 2.4.0+ MPC 0.8.0+

到最后。。。。gcc还是没有更换成功。。。。可是我明明这几个我都装了啊!烦死了。。。。。

7、 安装GDAL中间碰到的坑

根据提示 sqlite3_column_orgin_name 以及 sqlite3_column_table_name 这俩参数在 libgdal.so里找不到.
根据博客的提示:
博客1是,缺包缺依赖opencv。
博客2是,源码安装sqlite3的时候,没有预初始化。
到最后我按照博客2解决的,在安装sqlite3配置的时候,增加一行配置,初始化一下sqlite3的参数

博客1:编译example出现/usr/lib/libgdal.so.20: undefined reference to `sqlite3_column_orig错误解决

博客2:ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name

2.3、docker容器内安装

参考博客:【Linux】CentOS制作Java+GDAL环境镜像并部署运行SpringBoot项目

如果按照当前这个dockerfile来构建镜像。

需要提前准备:

  • jdk-8u301-linux-x64.tar.gz
  • geos-3.6.2.tar.bz2
  • proj-4.9.3.tar.gz
  • FileGDB_API_1_5_64.tar.gz
  • apache-ant-1.10.7-bin.tar.gz
  • swig-4.0.1.tar.gz
  • gdal-2.4.4.tar.gz

贴了一下人家的dockfile,这个DockerFile文件本质上说,还是按普通安装的步骤来弄的。只不过软件是安装到容器里了。有耐心编写DockerFile,且有信心能安装成功的可以试试。因为我上面本地都没有安装成功,本人没信心使用DockerFile安装成功,就没进行这个操作。

# 以centos7为基础镜像构建本镜像
FROM centos:7
LABEL maintainer="DORIC"#------------------- 安装JAVA8 -------------------
# 使用ADD命令将与Dockerfile相同目录下的文件拷贝并解压缩至镜像指定目录下
# 非常规格式的文件复制建议使用COPY命令替代
ADD ./jdk-8u301-linux-x64.tar.gz /usr/local
# 设置工作目录为镜像中的指定路径,后续命令均在此目录下执行
WORKDIR /usr/local
# 修改文件名,以/usr/local/java为JAVA_HOME
RUN mv jdk1.8.0_301 /usr/local/java# Dockerfile使用ENV设置环境变量
# 设置JAVA环境变量
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
# 将java中可执行文件目录添加到PATH
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH $CLASSPATH:/usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar#------------------- 安装编译所需要的工具及库 -------------------
RUN yum -y install  \
bzip2 \
gcc \
make \
subversion \
gcc-c++ \
sqlite-devel \
libxml2 \
libxml2-devel \
python-devel \
numpy \
expat-devel \
libcurl-devel \
postgresql \
postgresql-devel#------------------- 安装geos -------------------
# 复制文件到镜像中指定目录
COPY ./geos-3.6.2.tar.bz2 /usr/local/
WORKDIR /usr/local
# 解压缩文件到当前目录下
RUN tar -xvf geos-3.6.2.tar.bz2
WORKDIR /usr/local/geos-3.6.2
RUN ./configure
RUN make && make install
# 删除已经安装完毕的压缩包、安装包
RUN rm -rf /usr/local/geos-3.6.2.tar.bz2
RUN rm -rf /usr/local/geos-3.6.2#------------------- 安装proj4 -------------------
COPY ./proj-4.9.3.tar.gz /usr/local/
WORKDIR /usr/local
RUN tar -xvf proj-4.9.3.tar.gz
WORKDIR /usr/local/proj-4.9.3
RUN ./configure
RUN make && make install
RUN rm -rf /usr/local/proj-4.9.3.tar.gz
RUN rm -rf /usr/local/proj-4.9.3# ------------------- 安装filegdb api -------------------
# 用于实现GDAL操作GDB文件
COPY ./FileGDB_API_1_5_64.tar.gz /usr/local/
WORKDIR /usr/local
# 解压缩
RUN gunzip FileGDB_API_1_5_64.tar.gz
RUN tar -xvf FileGDB_API_1_5_64.tar
# 以/usr/local/FileGDB_API为安装目录
RUN mv FileGDB_API-64 /usr/local/FileGDB_API
# 将FileGDB_API的动态链接目录添加到LD_LIBRARY_PATH,否则报未定义参考错误
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/FileGDB_API/lib
# 拷贝动态链接文件后需要执行ldconfig命令以刷新
RUN ldconfig# 继续编译FileGDB_API,将生成的动态连接文件复制到/usr/local/lib/下
WORKDIR /usr/local/FileGDB_API/samples
RUN make
RUN cp ../lib/* /usr/local/lib/
RUN rm -rf /usr/local/FileGDB_API_1_5_64.tar
RUN rm -rf /usr/local/FileGDB_API_1_5_64.tar.gz# https://gis.stackexchange.com/questions/292506/how-do-i-install-esri-file-gdb-api-in-ubuntu-16-04-so-qgis-2-8-can-see-it
# cd src/FileGDB_API-64gcc51
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib
# cd samples
# make
# cp ../lib/* /usr/local/lib/
# ldconfig#------------------- 安装ant -------------------
# 用于编译gdal.jar
COPY apache-ant-1.10.7-bin.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf apache-ant-1.10.7-bin.tar.gz
RUN mv apache-ant-1.10.7 ant
RUN rm -rf /usr/local/apache-ant-1.10.7-bin.tar.gz#-------------------  安装swig -------------------
COPY swig-4.0.1.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf swig-4.0.1.tar.gz
WORKDIR /usr/local/swig-4.0.1
RUN ./configure \
--prefix=/usr/local/swig \
--without-pcre
RUN make && make install
RUN rm -rf /usr/local/swig-4.0.1
RUN rm -rf /usr/local/swig-4.0.1.tar.gz# 配置ant/swig环境变量
ENV ANT_HOME /usr/local/ant
ENV SWIG_HOME /usr/local/swig
ENV PATH $PATH:$ANT_HOME/bin:$SWIG_HOME/bin#------------------- 编译安装GDAL -------------------
COPY gdal-2.4.4.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf gdal-2.4.4.tar.gz
WORKDIR /usr/local/gdal-2.4.4
RUN ./configure \
--prefix=/usr/local/gdal \
--with-pg \
--with-java=/usr/local/java \
--with-curl=/usr/bin/curl-config \
--with-xml2=/usr/bin/xml2-config \
--with-fgdb=/usr/local/FileGDB_API
RUN make && make install# 配置GDAL环境变量,包含了GDAL_HOME和GDAL_DATA
ENV GDAL_HOME /usr/local/gdal
ENV GDAL_DATA $GDAL_HOME/share/gdal# 将gdal中的可执行文件和动态链接文件分别拷贝到/usr/local/bin/和/usr/local/lib/
WORKDIR /usr/local/gdal
RUN cp -r ./bin/* /usr/local/bin/
RUN cp -r ./lib/* /usr/local/lib/
RUN ldconfig# 可执行文件和动态链接库添加到环境变量中
ENV PATH $PATH:/usr/local/bin
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib#------------------- 编译gdal.jar -------------------
# 在执行完编译安装的解压缩文件gdal-2.4.4目录下
WORKDIR /usr/local/gdal-2.4.4/swig/java
# 修改java.opt的java_home,在第五行插入指定内容
RUN sed -i '5aJAVA_HOME = /usr/local/java' java.opt
RUN make && make install# 复制生成的gdal.jar和so文件到指定目录,否则报错,java.lang.UnsatisfiedLinkError:org.gdal.gdal.gdalJNI.AllRegister()V
RUN cp gdal.jar /usr/local/java/jre/lib/ext/
RUN cp *.so /usr/local/java/jre/lib/amd64/server/
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/java/jre/lib/amd64/server# RUN rm -rf /usr/local/gdal-2.4.4
RUN rm -rf /usr/local/gdal-2.4.4.tar.gzWORKDIR /usr/local

2.4、使用官方制作的IMAGES

官方文档:官方文档
GitHub上官方的dockerImages:gdal_docker_image
JAVA使用GDAL:gdal的使用
关于官方镜像使用方法文档:官方镜像使用文档

注意: 下面的脚本只提供参考思路,不要直接使用。因为这是跟我的自己的项目写的DockfFile

这个DockerFile是使用官方镜像作为基础镜像,在其基础上将自己的项目构架成新的镜像。
亲测。好用~
另外,第二种方法跟第一种方法差不多。第一种方法,我在自己的虚拟机上安装成功,在公司服务器(无网)上安装失败。
这是我放弃第二种方法的主要原因!其次的原因就是,准备的包比较多,而且我无法确定其依赖版本是否正确。所以最后放弃第二种方法!!!
其次,关于官方docker镜像的运行,在上面的引用文档中有,可能小伙伴没有自己看文档,这里贴一下
注意:tag/版本号
docker run -it \-v $(pwd):/gdal:rw \ghcr.io/osgeo/gdal-deps:ubuntu_20.04-master
mkdir -p /home/dockerfile/planning;cd /home/dockerfile/planning;
#使用官方镜像制作images
docker pull ghcr.io/osgeo/gdal:ubuntu-full-3.2.0echo "###########################"
echo "####  开始编写DockerFile ###"
echo "###########################"
#编写DockerFile
echo "开始编写DockerFile........"
touch /home/dockerfile/planning/DockerFile
tee /home/dockerfile/planning/DockerFile <<-'EOF'
#将官方镜像做为基础镜像
FROM ghcr.io/osgeo/gdal:ubuntu-ful1-3.2.0
MAINTÄINER system
LABEL name="planning" version="2.0" auth="mcs"
VOLUME /home/planning/data
RUN mkdir -p /home/planning/data
WORKDIR /home/planning
#注意:执行脚本前。注意DockerFile文件的位置,以及程序包的位置。
COPY planning.jar /home/planning/planning.jar
ENTRYPOINT ["java","-jar","planning.jar"]
'EOF'
echo "编写DockerFile完成........"echo "###########################"
echo "####   开始编写启动文件    ###"
echo "###########################"
touch /home/dockerfile/planning/start.sh
tee /home/dockerfile/planning/start.sh <<-'EOF'
#!/bib/bash_
export server=planning
export name=planning
export port=9481
export serverPort=9481
export version=$1
if [ ! -n "$version" ]; then
echo "请指定[版本]"
echo "请使用此命令:sh start.sh [版本]"
echo"示例:sh start.sh 20220523"
exit
fiecho "###########################"
echo "####     开始构建镜像     ###"
echo "###########################"
echo "start building....."
docker build -f DockerFile -t $name:$version .
echo "================================="
echo "building result:"
docker images | grep -w $name
echo "================================="echo "###########################"
echo "####     开始运行容器     ###"
echo "###########################"
echo "docker start running...."
echo "执行命令[docker run -p $port:$serverPort --name $name.$version -v /home/logs/$name/$vers ion:/home/$name/logs/$server -d  name:$version]"
docker run -p $port:$serverport --name $name.$version \
-v /home/logs/$name/$version:/home/$name/logs/$server \
-v /etc/localtime:/etc/localtime \
--privileged=true \
-d $name:$versionecho "当前版本:$version 日志位置:/home/logs/$name/$version"
echo "启动命令执行完毕!"
echo "================================="
echo "start result:"
docker ps -a| grep -w $name
echo "================================="
'EOF'#开始运行脚本
sh start.sh

Linux下安装GDAL(含docker部分)相关推荐

  1. 如何在Linux下安装Docker

    如何在Linux下安装Docker Docker概念: Docker包括三个基本概念: l  镜像(Image) l  容器(Container) l  仓库(Repository) 理解了这三个概念 ...

  2. Linux下安装Docker,报错docker: unrecognized service的两种解决方案

    Linux下安装Docker,报错docker: unrecognized service的两种解决方案 参考文章: (1)Linux下安装Docker,报错docker: unrecognized ...

  3. Docker Linux下安装配置及启动

    Docker Linux下安装配置及启动 linux配置环境 基础下载镜像: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliy ...

  4. linux下安装Jenkins(centos7,另附使用docker安装)

    目录 1.下载安装包 2.修改配置 3.登陆Jenkins 4.安装git相关插件(用于自动化部署) 5.使用docker安装jenkins 6.docker安装jenkins常见问题: 1.下载安装 ...

  5. linux blender骨骼绑定,Linux下安装Blender

    Blender在Windows下,可以在官方直接下载免安装的版本,下载解压缩就能用. 在Linux下稍微麻烦一点点. 如下3步安装的blender不一定是最新版本,且安装完成后发现设置中文会变为方块. ...

  6. Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set

    Linux下安装Beego出错 问题:go install: cannot install cross-compiled binaries when GOBIN is set 遇到这个问题一般是在环境 ...

  7. linux下安装nginx启动,Linux下安装启动nginx的过程

    1.首先将nginx的安装包传到虚拟机里的/home目录下 2.为了方便nginx运行而不影响linux安全需创建组合用户 groupadd -r nginx useradd -r -g nginx  ...

  8. g 最新编译器linux,Linux下安装gcc 、g++ 、gfortran编译器

    一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过"gcc -v"命令来查看是否安装. (2).g++ 安 ...

  9. linux下安装python3报错_Linux中安装python3

    (一)Linux中安装python3(含pip3自动安装) 1.首先安装依赖包 yum -y groupinstall "Development tools" yum -y ins ...

最新文章

  1. selectepoll
  2. ISA Server中基于L2TP实现远程拨入***
  3. VALSE 2020-18 《如何写/审AI领域的论文》笔记
  4. Sparklens:Spark应用程序优化工具
  5. linux 两块硬盘 分区,linux 两块硬盘分区,这个是什么/dev/mapper/VolGroup00-LogVol00
  6. nodejs实践录:pm2使用
  7. 存放哪些内容 项目中vuex_房屋安全鉴定中房屋抗震检测内容有哪些
  8. Android ADB 用法
  9. java多继承_为什么 Java 不支持类多重继承?
  10. ramoops具体失败原因来解释驱动寄存器
  11. Few-Shot Video Object Detection
  12. 你想要的宏基因组-微生物组知识全在这(1910)
  13. 被罚6500万,“偷税人”雪梨还能直播吗?
  14. C语言习题:猜数字游戏(C语言随机数)
  15. spleeter音乐人声分离、5种架子鼓钢琴声音分离的高质量模型运行超详细教程windows+ubuntu18.04
  16. Android手机直播(三)声音采集
  17. ES部署报错 max file size 和 kibana 报错File size limit exceeded
  18. svn使用问题:SVNlicense到期问题设置SVN提交代码时必须填写日志
  19. 熊掌号:博客优化的SEO技巧有哪些?
  20. 大族协助机器人仿真HansRobot 第一讲:软件安装及启动

热门文章

  1. 软件工程学习(二)软件架构4+1视图
  2. 数字媒体--基于语音识别、全息投影及虚拟现实技术的建筑体验与展示系统(记录,较简陋)
  3. 1.1-数字图像的基本概念
  4. Oracle Flashback 技术总结
  5. 北理Todo::待办管理系统
  6. 2021年安全员-B证(广西省)考试报名及安全员-B证(广西省)找解析
  7. 阿里云申请免费CA认证
  8. 用计算机视觉可以做什么项目,面向初学者的10个热门计算机视觉项目
  9. 我的求职之路:9个offer,12家公司,35场面试,最终谷歌【转载】
  10. Linux下LCD编程