I’ve run into an interesting network-based licensing problem.
On linux, when the dockerd
service starts, it assigns a quasi-random MAC address to the docker0
bridge interface.
In general, that’s fine, but I am using a piece of software that node-locks itself based on an ethernet interface’s address.
So, when I went to license the software, docker0
was the first interface the licensing app saw, alphabetically, and, apparently it took that interface’s MAC and generated a license using that. (Note - of course, depending on how you query the interfaces, they may or may not come out in a different order. Usually, lo
comes out first in some probes. But the alphabetical order of ifconfig
seems to be what is being used here.
Now, reboot, docker0
has a different MAC, software license manager gives me the ‘not licensed for this machine’ story.
I’ve seen several mentions of potential settings in daemon.json
like setting mac-address
in there, but none work. That option, while groovy when using docker run
doesn’t seem to be respected in the daemon.json
.
Also, I’ve alerted the license-generator software company to this, and, was able to license it by just not having docker around as a daemon, hand starting it when needed. But I’m interested, for the future, if there is a way to make this more configurable. I’m guessing I could muck about in the .service
file and maybe force the option there, but, I’d rather not and just let it use the already-existent config file.
Thoughts?