iManager Docker环境ip冲突解决方案

2024-02-25 09:58

本文主要是介绍iManager Docker环境ip冲突解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:doremi

iManager介绍

Docker是一种容器化新技术,把应用+依赖环境打包成标准单元(容器),使应用忽略部署环境的差异,越来越多的行业在用Docker规范部署、提高效率。iManager 9D提供全套SuperMap GIS平台Docker镜像,提供GIS站点、数据库、智慧城市应用等多类组合模板,支持UI查看、监控、操作等,支持多租户、动态伸缩,协助更便捷地打造高性能云GIS方案。

Docker网络

iManager使用docker环境时,docker网络模式默认使用的bridge模式,当我们创建容器时,每个容器会有它自己的虚拟网络接口连接到桥接网络docker0,并获取一个ip。可以通过ifconfig docker0查看docker0的信息,使用route -n命令可以看到,docker会默认占用三个网段,172.17.0.0,172.18.0.0,172.19.0.0

在实际使用环境中,有可能咱们局域网内已经将这些网段分配到了其他的工作区域中,如果在这些工作区域中去访问此环境下的docker服务,是无法正常访问的。那么这时候就只有两种解决办法,将已分配的工作区域的网段换成其他网段,或者将docker占用的网段指定成其他网段,显然前者相对来说成本要稍高些。所以今天咱们就来看看如何将docker network占用的网段指定成其他的网段以避免ip冲突。

解决步骤
  1. 停掉docker服务
    service docker stop
    
    如果是使用的是ova包或者是openstack的镜像包环境,可以省略这一步
  2. 创建新的docker network桥接网络
    使用docker create命令创建一个新的网络配置,以下创建了一个网段为182.17.0.0的网络
    docker network create --subnet=182.17.0.0/16 --gateway=182.17.0.1 mynetwork
    
  3. 修改docker-compose.yml配置文件
    在iManager的文件夹下面找到docker-compose.yml文件,进行编辑。
    在配置文件的最下面将network的default修改成我们新创建的网络
    networks:mynetwork:external: true
    
    在这里插入图片描述
    然后还需要将每个容器的networks也修改成我们新创建的网络,需要注意的是nginx容器不要修改,因为它使用的是host模式。
    在这里插入图片描述
  4. 重启docker服务 ,重启iManager
    service docker restart
    
    重启iManager,在iManager的文件夹下执行start.sh脚本,如果是使用的是ova包或者是openstack的镜像包环境,可以跳过上一步,直接重启iManager。重启可以看到容器除了nginx都重新创建了。
    ./start.sh
    
  5. 验证是否使用上了新创建的网络,确保除了Nginx容器外其他的容器都使用上新创建的网络
    docker inspect mynetwork
    
    在这里插入图片描述
    在这里插入图片描述
    以上,可以看出除了nginx容器,其他的容器都使用上我们创建的新网络,说明配置是成功了
  6. 移除以前的网络配置
    查看docker network所有的网络配置,使用docker network rm删除之前使用的网络
    docker network ls 
    docker network rm imanager_default
    
    在这里插入图片描述
    如果还有容器在使用之前的网络,移除是会报错的,将docker-compose.yml中未修改networks的容器修改之后执行./start.sh重启,再进行移除
    在这里插入图片描述
    最后我们还需要停用之前的虚拟网卡,不然ip依然会冲突,使用route -n查看当前还在使用的路由,停用掉172.17.0.0和172.18.0.0网卡
    // 查看路由
    route -n
    //停用网卡
    ifconfig docker0 down
    ifconfig docker-sys down
    
    在这里插入图片描述
    到这里我们已经成功把docker使用的网段修改成了182.17网段了,在172.17.0.0,172.18.0.0,172.19.0.0三个网段环境下就能正常访问imanager和其他暴露出来的docker服务了

这篇关于iManager Docker环境ip冲突解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安