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


相关推荐: Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何在宝塔面板创建新站点?  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  在线制作视频网站免费,都有哪些好的动漫网站?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何确保FTP站点访问权限与数据传输安全?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel怎么判断请求类型_Laravel Request isMethod用法  jQuery validate插件功能与用法详解  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  ,在苏州找工作,上哪个网站比较好?  如何在IIS7中新建站点?详细步骤解析  深入理解Android中的xmlns:tools属性  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  如何快速生成橙子建站落地页链接?  JS经典正则表达式笔试题汇总  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  香港网站服务器数量如何影响SEO优化效果?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  制作公司内部网站有哪些,内网如何建网站?  Laravel如何使用Service Container和依赖注入?(代码示例)  实例解析angularjs的filter过滤器  SQL查询语句优化的实用方法总结  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  网站建设保证美观性,需要考虑的几点问题!  Bootstrap整体框架之JavaScript插件架构  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在阿里云部署织梦网站?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Linux系统运维自动化项目教程_Ansible批量管理实战  java中使用zxing批量生成二维码立牌  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何打造高效商业网站?建站目的决定转化率  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Swift中switch语句区间和元组模式匹配  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  PHP 500报错的快速解决方法  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  如何快速查询网址的建站时间与历史轨迹?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何记录自定义日志?(Log频道配置)  如何在阿里云ECS服务器部署织梦CMS网站?  用yum安装MySQLdb模块的步骤方法  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏