Docker 如何分配宿主机网段 IP

发布时间 - 2026-01-11 01:06:29    点击率:

工作需要临时启动一个 gitlab,无奈 gitlab 需要 ssh 的 22 端口;而使用传统网桥方式映射端口则 clone 等都需要输入端口号,很麻烦;22 端口宿主机又有 sshd 监听;研究了下 docker 网络,记录一下如何分配宿主机网段 IP

创建 macvlan 网络

关于 Docker 网络模式这里不再细说;由于默认的网桥方式无法满足需要,所以需要创建一个 macvlan 网络

复制代码 代码如下:
docker network create -d macvlan  --subnet=172.16.0.0/19 --gateway=172.16.0.1 -o parent=eth0 gitlab-net

  1. --subnet: 指定网段(宿主机)
  2. --gateway: 指定网关(宿主机)
  3. parent: 注定父网卡(宿主机)

创建以后可以使用 docker network ls 查看

 ~ docker network ls
NETWORK ID     NAME          DRIVER       SCOPE
a4a2980c9165    agent_default      bridge       local        
a0f29102b413    bridge         bridge       local        
2f46dc70b763    gitlab-net       macvlan       local        
51bd6222530f    host          host        local        
7a14a09c3cfc    none          null        local

创建使用容器

接下来创建容器指定网络即可

复制代码 代码如下:
docker run --net=gitlab-net --ip=172.16.0.170  -dt --name test centos:7

--net 指定使用的网络,--ip 用于指定网段内 IP;启动后只需要在容器内启动程序测试即可

# 启动一个 nginx
yum install nginx
nginx

启动后在局域网内能直接通过 IP:80 访问,而且宿主机 80 不受影响

docker-compose 测试

docker-compose 示例如下

version: '2'
services:
 centos:
  image: centos:7
  restart: always
  command: /bin/bash -c "sleep 999999"
  networks:
   app_net:
    ipv4_address: 10.10.1.34
networks:
 app_net:
  driver: macvlan
  driver_opts:
   parent: enp3s0
  ipam:
   config:
   - subnet: 10.10.1.0/24
    gateway: 10.10.1.2
#    ip_range: 10.25.87.32/28

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# docker  # 宿主机ip  # 宿主机同网段  # 分配宿主机IP  # Docker默认网段的正确修改步骤  # Docker如何实现修改Docker0网桥默认网段  # 详解Docker 容器跨主机多网段通信解决方案  # Docker实现同Ip网段联通的实现  # docker 指定IP地址、与主机同网段IP  # Docker 容器指定自定义网段的固定IP/静态IP地址  # Docker默认网段修改实现方法解析  # 网桥  # 又有  # 只需  # 要在  # 不受  # 可以使用  # 创建一个  # 大家多多  # 很麻烦  # 端口号  # 容器内  # bridge  # agent_default  # li  # parent  # class  # ol  # net  # NETWORK  # bash 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 米侠浏览器网页图片不显示怎么办 米侠图片加载修复  网站页面设计需要考虑到这些问题  如何快速搭建高效简练网站?  如何构建满足综合性能需求的优质建站方案?  深圳网站制作的公司有哪些,dido官方网站?  QQ浏览器网页版登录入口 个人中心在线进入  如何实现javascript表单验证_正则表达式有哪些实用技巧  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何在阿里云ECS服务器部署织梦CMS网站?  使用C语言编写圣诞表白程序  Laravel集合Collection怎么用_Laravel集合常用函数详解  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel如何实现用户密码重置功能?(完整流程代码)  教你用AI润色文章,让你的文字表达更专业  Python数据仓库与ETL构建实战_Airflow调度流程详解  php 三元运算符实例详细介绍  javascript基本数据类型及类型检测常用方法小结  浅谈Javascript中的Label语句  如何有效防御Web建站篡改攻击?  如何在阿里云虚拟服务器快速搭建网站?  如何在橙子建站上传落地页?操作指南详解  详解jQuery中基本的动画方法  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  js实现点击每个li节点,都弹出其文本值及修改  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  如何在Windows 2008云服务器安全搭建网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Python高阶函数应用_函数作为参数说明【指导】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何为不同团队 ID 动态生成多个“认领值班”按钮  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  ,在苏州找工作,上哪个网站比较好?  ,网页ppt怎么弄成自己的ppt?  如何在万网利用已有域名快速建站?  Swift开发中switch语句值绑定模式  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  微信小程序 五星评分(包括半颗星评分)实例代码  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何保护应用免受CSRF攻击?(原理和示例)