Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以为“docker build”设置MAC地址?_Docker_Dockerfile_Docker Build - Fatal编程技术网

是否可以为“docker build”设置MAC地址?

是否可以为“docker build”设置MAC地址?,docker,dockerfile,docker-build,Docker,Dockerfile,Docker Build,使用docker run,可以使用--MAC address选项修复MAC地址。我已经看过了,但我找不到一种方法来用docker build修复MAC地址。我想对具有固定到MAC地址的许可证的软件进行dockerize(我不想绕过许可证;我想拥有一个更可复制的系统架构) 谢谢

使用
docker run
,可以使用
--MAC address
选项修复MAC地址。我已经看过了,但我找不到一种方法来用
docker build
修复MAC地址。我想对具有固定到MAC地址的许可证的软件进行dockerize(我不想绕过许可证;我想拥有一个更可复制的系统架构)


谢谢
FROM alpine
RUN ifconfig | grep -i hwaddr
如果您使用

docker build .
你得到

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM alpine
 ---> 7328f6f8b418
Step 2/2 : RUN ifconfig | grep -i hwaddr
 ---> Running in c092838dbe31
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02
Removing intermediate container c092838dbe31
 ---> 7038787f51b8
现在我们不能控制docker build的Mac地址,但是我们可以控制build的网络,我们可以控制容器的Mac地址。因此,让我们启动一个带有mac地址的容器

$ docker run --name mac1234deb06b61 --mac-address="12:34:de:b0:6b:61" -d alpine tail -f /dev/null
c3579e4685933b757f51c5f9e36d620dbe3a62abd0e0d6a421b5f1c04045061c

$ docker build --network container:mac1234deb06b61 --no-cache .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM alpine
 ---> 7328f6f8b418
Step 2/2 : RUN ifconfig | grep -i hwaddr
 ---> Running in 4390f13cbe8f
eth0      Link encap:Ethernet  HWaddr 12:34:DE:B0:6B:61
Removing intermediate container 4390f13cbe8f
 ---> b0b5f7321921
Successfully built b0b5f7321921

如您所见,现在docker build采用更新的mac地址

此方法在带有windows容器的windows上不起作用:
不支持共享hyperv容器网络
$ docker run --name mac1234deb06b61 --mac-address="12:34:de:b0:6b:61" -d alpine tail -f /dev/null
c3579e4685933b757f51c5f9e36d620dbe3a62abd0e0d6a421b5f1c04045061c

$ docker build --network container:mac1234deb06b61 --no-cache .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM alpine
 ---> 7328f6f8b418
Step 2/2 : RUN ifconfig | grep -i hwaddr
 ---> Running in 4390f13cbe8f
eth0      Link encap:Ethernet  HWaddr 12:34:DE:B0:6B:61
Removing intermediate container 4390f13cbe8f
 ---> b0b5f7321921
Successfully built b0b5f7321921