Elastic Beanstalk部署中Docker IP冲突及手动配置方法咨询
在Elastic Beanstalk中修改Docker网桥IP范围的方法
Elastic Beanstalk的Dockerrun.aws.json确实没有直接配置Docker网桥参数的选项,但可以通过自定义平台钩子来修改Docker默认网桥的IP范围,解决IP冲突问题,具体步骤如下:
创建平台钩子目录结构
在应用代码根目录下创建.platform/hooks/prebuild文件夹(prebuild阶段会在Docker服务启动前执行,确保配置生效)添加Docker网桥配置脚本
在上述文件夹中创建可执行脚本(例如01-set-docker-bridge.sh),内容如下:#!/bin/bash # 写入Docker守护进程配置,修改网桥IP段(替换为你需要的无冲突网段) cat > /etc/docker/daemon.json <<EOF { "bip": "172.20.0.1/16" } EOF # 根据实例系统版本选择重启命令 if command -v systemctl >/dev/null 2>&1; then systemctl restart docker else service docker restart fi注意:将
172.20.0.1/16替换为不与目标私有IP(172.17.57.52)冲突的网段,比如192.168.0.1/24或其他未使用的私有IP段。设置脚本权限
给脚本添加可执行权限,避免部署时无法执行:chmod +x .platform/hooks/prebuild/01-set-docker-bridge.sh重新部署应用
将修改后的代码包重新部署到Elastic Beanstalk,平台会在实例启动阶段自动执行该钩子脚本,更新Docker网桥配置。
部署完成后,可登录EC2实例执行netstat -rn查看路由表,确认docker0网桥的IP范围已更新为你设置的网段。
内容的提问来源于stack exchange,提问作者Harshith Bannanje
相关产品推荐
相关产品推荐

