为 docker 容器分配宿主局域网IP地址

好记性不如烂笔头,本来熟悉的操作,经过岁月洗礼几乎忘完了。

本文旨在说明如何实现docker容器使用宿主机IP段对外提供服务或跨主机互通,若尚未安装docker请移步百度。

文中假设宿主机所在的局域网地址段为 192.168.10.0/24,请根据实际情况进行修改

创建一个基于macvlan驱动的网络

docker network create --driver macvlan \
    --subnet=192.168.10.0/24 --gateway=192.168.10.1 \
    --opt parent=eth0 mcnet

创建一个有固定局域网IP的测试容器

docker run -it --rm --network mcnet --ip 192.168.10.114 alpine

多台宿主机的容器互通

在所有节点重复上述步骤即可,注意不要分配重复的ip地址

特别说明

  • 若宿主为物理机或esxi,网卡需要开启Trunk混杂模式才可以透传打了tag的数据包

  • 若宿主为hyper-v虚拟机,则需要开启MAC欺骗,参阅 https://www.rehiy.com/post/434/

  • 若宿主为云服务器,你就不要尝试了,多数vpc都是运行在vxlan里面的,不支持vlan数据

  • docker

6 评论

鹰瑶 回复

很久前码的一小段代码,偶然翻出来了。带注释分享一下,仅供大家研究学习,切勿用于其他用途

小东 回复

很久没更新这个系列的文章了,想来按照之前教程部署的集群也都到了该升级的时候,今天我们来探讨下如何升级k3s集群

荒年 回复

在和上可以通过删除“设置账户邮件和账户”里的登录账号来达到目的。但是在上尝试了各种删除的办法都是没用

梦屿 回复

MariaDB 安装时,默认会创建一个特权用户。如果忘记超级管理员可以使用这个账号登录后修改密码或者主机

蛋黄 回复

使用Cloudflare部署Ai聊天前端界面,无需置备服务器,只要一个可以接入cloudflare的域名即可

king 回复

前言 不得不吐槽下,将一个现有域名添加到Cloudflare时,系统自动导入的几百个不那么正确的解析记录,让人抓狂

回复题主

您的电子邮件地址将不会被公布。必填字段已标记 *