docker使用指定的MAC地址启动&podman使用指定的MAC地址启动
docker指定固定的mac地址
1】创建自定义桥接网络并配置 MAC 地址保留
docker network create --driver bridge custom_bridge
2】启动容器并指定使用自定义网络
docker run -it --name your-container --network custom_bridge --mac-address 02:42:ac:11:00:02 your-image
--mac-address:直接设置容器的 MAC 地址(需符合格式,用 : 分隔)。--network custom_bridge:指定容器使用名为custom_bridge的自定义网络。
3】查看docker已创建的网络
1、使用docker network ls命令
docekr network ls --filter driver=bridge
该命令用于列出 Docker 中所有的网络,通过过滤可以找到桥接类型的网络。
--filter driver=bridge是过滤条件,用于只显示驱动类型为 bridge(桥接)的网络。执行后,会得到类似如下的输出结果:NETWORK ID NAME DRIVER SCOPE 767c81710959 bridge bridge local 115417c815d2 custom_bridge bridge local
NAME列显示了桥接网络的名称。
2、使用docker network inspect命令查看桥接网络信息
docker network inspect custom_bridge
以上命令式查看名为
custom_bridge的桥接网络详细信息
输出结果会包含该桥接网络的 IP 地址池、网关、DNS 设置等详细配置信息,示例如下:[ { "Name": "custom_bridge", "Id": "115417c815d2f87c9a87578912e1a815417c815d2f87c9a87578912e1a8", "Created": "2024-01-01T12:00:00.000000000Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, // 省略其他配置信息 } ]
4】修改docker已创建的网络
1、删除原有网络:docker network rm
```bash
docker network rm custom_birdge
```
>以上命令删除要修改的桥接网络,如:删除名为`custom_bridge`的桥接网络
2、重新创建网络并设置新配置:docker network create
```bash
docker network create \
--driver bridge \
--subnet 192.168.20.0/24 \
--gatawey 192.168.20.1 \
custom_bridge
```
> 使用`docker network create`命令按照新的要求创建桥接网络,比如:设置子网`192.168.20.0/24`,网关设置为`192.168.20.1`等配置
3、重新连接容器:docker network connect
```bash
docker network connect custom_bridge your_container
```
> 如果之前有容器连接到这个网络,需要重新将容器连接到新创建的网络,比如:将`custom_bridge ` 桥接网络与`your_container`容器连接
podman指定固定的mac地址
1】创建 Podman 自定义网络(桥接模式)
podman network create custom_bridge
2】启动容器指定网桥并且固定mac地址
docker run -it --name your-container --network custom_bridge--mac-address 02:42:ac:11:00:02 your-image
--mac-address:直接设置容器的 MAC 地址(需符合格式,用 : 分隔)。--network custom_bridge:关联到自定义网络,确保容器在该网络内固定 MAC。
3】查看podman已创建的网络
1、使用podman network list命令
podman network list --filter driver=bridge
该命令用于列出podman中所有的网络,通过过滤可以找到桥接类型的网络
--filter driver=bridge是过滤条件,只显示驱动类型为bridge的网络。执行后,会得到类似如下的输出结果:NAME TYPE DRIVER SCOPE bridge bridge bridge local my_custom_bridge bridge bridge local
NAME列显示了桥接网络的名称
2、使用podman network inspect命令
podman network inspect custom_bridge
该命令用于查看指定网络的详细信息,结合
podman network list获取网络名称,就可以查看桥接网络的具体配置。
比如以上命令,要查看名为custom_bridge的桥接网络的详细信息:
输出结果包含桥接网络的子网、网关等配置信息,示例如下:[ { "cniVersion": "0.4.0", "name": "my_custom_bridge", "plugins": [ { "bridge": "cni-podman0", "hairpinMode": true, "ipMasq": true, "ipam": { "ranges": [ [ { "subnet": "10.88.0.0/16", "gateway": "10.88.0.1" } ] ], "routes": [ { "dst": "0.0.0.0/0" } ], "type": "host-local" }, "isGateway": true, "type": "bridge" }, // 省略其他配置信息 ] } ]
4】修改podman已创建的网络
方式1: 修改网络配置文件
1、找到对应的CNI配置文件【Linux系统】
```bash
ls /etc/cni/net.d/
```
> podman的CNI配置通常在 `/etc/cni/net.d/`目录下,文件名与桥接网络名称相关。
> 比如桥接网络名为custom_bridge,则对应的配置文件可能是`custom_bridge.conflist`
2、编辑配置文件
> 根绝要求修改配置,比如更改子网、网关等配置
3、重新加载网络配置!!!必要时也要重启涉及到的容器去重新加载最新网络配置
方式2:删除再重建的方式修改网络
1、断开容器与目标网络的链接(可选):podman network disconnect
```bash
# 断开容器与网络的关联(容器需处于运行或停止状态)
podman network disconnect custom_bridge your_container
```
> 以上命令断开 桥接网络`custom_bridge ` 与 容器`your_container`的链接
> 如果容器已停止,可以跳过此步骤,直接删除网络(但是建议先断开,避免依赖残留)
2、删除原有桥接网络:podman network rm
```java
podman network rm custom_bridge
```
> 比如删除名为`custom_bridge`的桥接网络
> 如果删除失败了(提示网络被使用),可以强制停止并删除关联容器后重试
> ```bash
> # 强制停止容器
>podman stop -f 容器名称或ID
># 删除容器(可选,若需保留容器则无需此步)
>podman rm 容器名称或ID
># 再次删除网络
>podman network rm 网络名称
>```
3、重新创建桥接网络
```bash
podman network create \
--driver birdge
--subnet 172.20.0.0/24 \
--gatawey 172.20.0.1 \
custom_bridge
```
> 重新创建`custom_bridge`并设置子网为`172.20.0.0/24`和网关为`172.20.0.1`
4、将容器关联到新网络
情况1:未创建的容器
podman run -d \
--name your_container \
--network custom_bridge \ # 关联到新创建的网络
--mac-address 02:42:ac:11:00:03 \ # 可选:指定固定MAC地址
your_image
以上:对于未创建的容器,启动时可以直接指定新的网络
情况2:对于已启动的容器
# 停止容器
podman stop your_container
# 重新连接到新网络
podman network connect custom_birdge your_conainer
# 重新启动容器
podman start your_container
以上:对于已创建的容器,先停止容器再连接到新网络
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)