五分钟学GIS | 自己动手做Docker镜像

2024-02-25 10:32

本文主要是介绍五分钟学GIS | 自己动手做Docker镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上一期五分钟学GIS中,我们学习了Docker的安装与使用,本期将继续Docker这个主题,来了解一下如何制作自己的Docker镜像。

1.制作镜像的方法

本文所提到的制作镜像是指在一个已有的镜像容器中进行修改,从而创建一个新的符合个人目标的镜像。Docker提供了两种镜像制作的方法。
第一种使用docker commit 命令来创建镜像,主要步骤如下:
1)通过docker run命令启动容器
2)修改docker镜像内容
3)docker commit提交修改的镜像
4)验证。查看镜像,并启动新的容器
第二种通过Dockerfile来创建镜像,主要步骤如下:
1)新建一个空目录和一个Dockerfile文件。
2)编写Dockerfile文件。Dockerfile包含创建镜像所需要的全部指令。
3)基于在Dockerfile中的指令,使用Docker build命令来创建镜像
两种镜像创建方式的对比如下表,具体选择哪种方法来制作镜像需要结合实际情况来选择。

2.镜像制作示例

需求:
GIS服务器使用SuerMap iServer,在此基础上扩展了查找距离点最近的道路线的自定义GIS服务,为了方便这套GIS服务器后续部署和迁移工作,制作一个镜像文件。
操作环境:
ubuntu14,安装了docker engine,下载了SuperMap iServer的镜像文件
制作iServer新镜像流程:
启动SuperMap iServer容器在容器中添加GIS扩展服务提交制作镜像验证镜像
制作镜像步骤:
第一步:使用docker run(创建容器并启动)命令启动SuperMap iServer容器。有关SuperMap iServer镜像下载与容器启动的介绍参见五分钟学GIS|Docker安装及使用。这里写图片描述
第二步:进入Docker容器,修改SuperMap iServer镜像内容。

  1. 使用docker exec命令进入Docker容器
    这里写图片描述

2)进入SuperMap iServer目录(镜像中SuperMap iServer软件目录位置:/ect/icloud/SuperMapiServer)。
这里写图片描述
3)对SuperMap iServer进行扩展服务的部署,包括将扩展服务jar包复制到\webapps\iserver\WEB-INF\lib文件夹中,修改\webapps\iserver\WEB-INF\iserver-services.xml。有关部署SuperMap iServer扩展服务的方法请参见http://blog.csdn.net/supermapsupport/article/details/72918419,本文不详细介绍。
这里写图片描述
4)启动iserver服务,对扩展服务进行测试。
5)exit命令退出容器。
这里写图片描述
第三步:docker commit提交修改的镜像。
这里写图片描述
-m:描述我们此次创建image的信息。
–author:用来指定作者。
c9e2d1d6ea6f:被修改的基础镜像ID。
supermap/iserverdss:v1:仓库名/镜像名:TAG名。

使用commit命令将容器里的所有修改提交到本地库中,形成以一个全新的镜像,并会返回新镜像的完整ID。
通过docker images命令可以查看镜像列表。

第四步,验证镜像。创建并启动新镜像的容器,查看内容是否正确。
这里写图片描述
SuperMapiServerDss容器启动以后,就可以在浏览器通过宿主机ip/域名:端口的形式访问到GIS服务器了,这里访问:http://192.168.73.21:9091/iserver/services,可以看到iServer中包括一个扩展的服务calculate/rest。

3.存储自己的镜像

使用上面介绍的方法可以创建自己的镜像,那么如果Docker 宿主机崩溃了或者文件消失了怎么办?如何保证我们创建的镜像在系统崩溃后仍然不丢失?大家可以将自己创建的镜像文件上传到镜像仓库中。
Docker Hub 官方提供了 Docker Hub 仓库让我们来存储镜像,当然也可以自己搭建Docker仓库。本文以上传到Docker Hub仓库为例介绍上传镜像的操作。
这里写图片描述
(1)登陆Docker Hub,输入如下命令:
这里写图片描述
此时会输出交互信息,让我们输入Username、Password、Email,成功输入信息后就会返回Login Success提示。
(2)运行上传镜像的命令如下:这里写图片描述

本文给大家介绍了制作容器镜像的主要方法,如果您在iServer服务器上实现了自定义GIS服务扩展,那么不妨使用上面的步骤为它制作一个新的镜像吧,这样可以利用容器技术快速部署这个GIS服务器,从而省去部署扩展服务的复杂步骤啦。
最后,给大家分享一些Docker资源:
docker官网:http://www.docker.com
Docker Hub:https://hub.docker.com
SuperMap Docker 镜像:https://hub.docker.com/u/supermap
runoob Docker资源:http://www.runoob.com/docker/docker-resources.html

这篇关于五分钟学GIS | 自己动手做Docker镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745195

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do