Docker容器化部署规范

微服务Docker容器化部署后的服务注册IP地址

由于微服务docker容器化部署后,在Nacos服务注册中心自动注册的是docker容器的IP地址。在没有其它的网络虚拟化支持的情况下,docker容器IP地址外部不可通讯,造成该服务不可用。

解决方法: 

  • 在bootstrap.properties中增加配置项,并用环境变量设定服务注册IP地址 spring.cloud.nacos.discovery.ip=${DISCOVERY_IP} ,如下:
    spring.application.name=resource
    spring.profiles.active=test
    spring.cloud.nacos.config.enabled=true
    spring.cloud.nacos.discovery.enabled=true
    spring.cloud.nacos.config.server-addr=10.**.**.40:11002
    spring.cloud.nacos.config.namespace=23b61e7e-*****-*****-1db5d0b22f17
    spring.cloud.nacos.config.group=RESOURCE_MANAGE_GROUP
    
    spring.cloud.inetutils.preferred-networks=10.**.**.26
    spring.cloud.nacos.discovery.ip=${DISCOVERY_IP}
    spring.cloud.nacos.discovery.port=8080
    
    spring.cloud.nacos.config.extension-configs[0].data-id=com-{spring.profiles.active}.properties
    spring.cloud.nacos.config.extension-configs[0].group=COMM
    spring.cloud.nacos.config.extension-configs[0].refresh=true

  • 在容器运行命令中设定环境变量为宿主机IP,并指定宿主机和容器的端口映射,即可实现用宿主机IP注册服务。 以避免在不同的宿主机上运行需要构建不同的镜像,如下:
docker run -d -e DISCOVERY_IP=10.100.52.*** -p 8080:8080 -v /root/logs:/root/resoruce-1.0-SNAPSHOT/logs cf2d48741a5e
  • 其它随着容器化部署环境变化配置内容有变化的配置项也可以采取以上方式解决,如:SIT环境和生产环境nacos命名空间的不同配置,达到同一镜像可以部署在不同的环境。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker标准指令是Dockerfile中一些常用的指令,用于定义Docker容器的构建规范和标准。以下是一些常用的Docker标准指令: 1. FROM:指定基础镜像,即Docker容器的基础环境。 2. RUN:在容器中运行命令,可以用于安装软件包和配置环境。 3. CMD:指定容器启动时要运行的命令和参数,可以覆盖在docker run命令中指定的默认命令。 4. EXPOSE:指定容器要监听的网络端口。 5. ENV:设置环境变量,可以在容器中使用。 6. ADD/COPY:将本地文件或目录复制到容器中。 7. WORKDIR:设置工作目录,即容器中运行命令的默认目录。 8. VOLUME:定义容器数据卷,可以在容器和主机之间共享数据。 9. USER:设置容器中运行命令的用户。 通过使用这些标准指令,可以确保Docker容器的构建和运行环境的一致性,使得容器更加可移植和可重复。同时,也可以通过编写自定义的Dockerfile来满足特定应用程序的需求,提高容器的性能和安全性。 ### 回答2: Docker标准指令是指在使用Docker时,可以遵循一系列统一的指令来进行操作和管理容器。通过使用标准指令,可以提高容器的可移植性和可维护性。 在Docker中,有一些常用的标准指令: 1. FROM:用于指定基础镜像,即用哪个镜像作为基础来构建自己的镜像。 2. RUN:用于在容器内部执行命令。可以用来安装软件包、配置环境等操作。 3. ADD和COPY:用于将文件从主机复制到容器中。ADD还可以自动解压缩文件和从URL下载文件。 4. ENV:用于设置环境变量。可以在容器中设置一些需要的环境变量,如数据库连接信息等。 5. EXPOSE和PORT:用于指定容器运行时需要暴露的端口。EXPOSE用于声明容器运行时监听的网络端口,而PORT用于将容器的端口映射到主机上。 6. CMD和ENTRYPOINT:用于配置容器的启动命令。CMD用于指定默认的命令和参数,ENTRYPOINT用于指定容器运行时的入口。 7. VOLUME:用于在容器和主机之间共享数据。可以将容器中的某个目录映射为主机上的目录,实现数据的持久和共享。 通过遵循这些标准指令,可以更方便地进行容器的构建、管理和部署。同时,这些指令也使得容器应用具备了更高的可移植性和可维护性,简了开发人员的工作。 ### 回答3: Docker标准指令是指在使用Docker容器时,遵循一套统一的命令规范和操作步骤。这些指令可以帮助用户更好地管理和使用Docker容器,提高容器的可移植性和可维护性。 Docker标准指令主要有以下几个方面: 1. 镜像指令:包括构建镜像、获取镜像、推送镜像等。通过使用统一的指令,可以更方便地管理和共享镜像,提高容器环境的可复现性。 2. 容器指令:包括创建容器、启动容器、停止容器等。通过标准容器指令,可以确保容器的创建和启动过程一致,并能方便地对容器进行管理。 3. 网络指令:包括创建网络、连接网络等。标准的网络指令可以帮助用户更好地配置容器的网络环境,实现容器之间的通信和互操作。 4. 数据卷指令:包括创建数据卷、挂载数据卷等。标准的数据卷指令可以方便地管理和共享容器的数据,实现数据的持久和备份。 5. 日志指令:包括查看日志、导出日志等。通过标准的日志指令,可以方便地查看和管理容器的日志信息,帮助用户进行故障诊断和排查。 通过遵循Docker标准指令,用户可以统一管理和操作容器环境,提高容器部署的效率和一致性。此外,标准指令也方便用户之间的经验交流和容器应用的共享。因此,了解和掌握Docker标准指令对于使用Docker来说是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值