当前位置: 首页 > 面试题库 >

Docker如何为容器分配MAC地址?

韶兴德
2023-03-14
问题内容

当我启动新容器时,Docker会自动为它们分配一些MAC地址。我很好奇这项作业是否有模式。MAC地址可以更改吗?

$泊坞窗网络检查网桥

"Containers": {
            "3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c": {
                "EndpointID": "647c12443e91faf0fd508b6edfe59c30b642abb60dfab890b4bdccee38750bc1",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c": {
                "EndpointID": "b047d090f446ac49747d3c37d63e4307be745876db7f0ceef7b311cbba615f48",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }

问题答案:

Docker开始02:42:ac:11:00:02为第一个容器分配始终相同的mac ,然后为每个不同的容器将每个mac增加一个。

不知道为什么他们要使用该mac地址。看来02:42:ac与oui数据库中的任何实际供应商都不匹配。查看有关此内容的官方文档。他们说:

MAC地址是使用分配给容器的IP地址来生成的,以避免ARP冲突,其使用范围是02:42:ac:11:00:00到02:42:ac:11:ff:ff

无论如何,您可以使用--mac-addressdocker run命令上的参数在容器生成上设置任何mac地址。例如执行这样的命令docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty

希望能帮助到你。



 类似资料:
  • 问题内容: 每当我运行docker容器时,我都会看到它使用随机MAC地址: 如何为容器运行设置特定的MAC地址? 我可以使用相同的MAC地址同时运行多个容器吗?这些容器不需要访问外部网络,也不需要互相交谈。 问题答案: 使用LXC配置选项设置MAC地址。这是一个如何使用Docker 0.6.1设置MAC地址的示例: 在输出中,您将看到已设置的HWaddr: 更新: 先前的开关(带1个破折号)已被弃

  • 问题内容: 这些天,我读了很多关于如何设置和运行Docker堆栈的信息。但是我一直想念的一件事是如何设置特定容器通过域名响应访问权限,而不仅仅是使用docker dns的容器名称。 我的意思是说我有一个可以从外部访问的微服务,例如:users.mycompany.com,它将进入处理用户api的微服务容器 然后,当我尝试访问customer-list.mycompany.com时,它将进入处理客户

  • 正如标题所说,我正在尝试为我的容器分配更多的内存。我正在使用docker中心的一个名为“aallam/tomcat-mysql”的图像,以防相关。 当我在没有任何特殊标志的情况下正常启动时,内存限制为2GB(即使我读到内存是无界的,如果没有设置) 这是我的码头工人数据 我试着像这样显式地设置内存,但结果相同 我已经读到,可能是虚拟机限制了它。但为什么docker统计数据显示容器大小限制为2GB?

  • 问题内容: 有什么方法可以将分配给容器。因此,容器具有公共IP。客户端可以使用IP访问容器。 问题答案: 对于当前发布的Docker版本,这是不可能的(无需在Docker背后进行大量手动工作),尽管它几乎没有必要。 Docker通过使用端口映射在容器中公开网络服务,并且端口映射可以绑定到主机上的特定IP地址。所以,如果你想有一个在Web服务器,并在另一个网站服务器,首先确保该地址可在主机上: 然后

  • 问题内容: 我不确定在这里是否误解了一些东西,但是似乎只能通过从映像创建新容器来设置端口映射。是否可以将端口映射分配给现有Docker容器? 问题答案: 您可以通过直接在以下位置编辑文件 来更改端口映射 您可以通过命令确定[hash_of_the_container] ,“ Id”字段的值为哈希。 因此,您无需使用这种方法来创建图像。您也可以在此处更改重新启动标志。 PS:您可以访问 https:

  • 然而,在我创建了另一个docker服务器并创建了其中两个服务器的群并再次尝试运行jenkins jobs之后,它仍然只在原始服务器(现在也是一个管理器)上部署容器。我希望swarm能够平衡负载,并在swarm中均匀地分配新创建的容器。我错过了什么? 也许我必须使用服务吗?