for anyone still want to get ipv6 on br0 working, HumanTechDesign step was mostly correct! But the reason everybody keep adding --sysctl net.ipv6.conf.all.disable_ipv6=0 or --sysctl net.ipv6.conf.eth0.use_tempaddr=2 is because docker network br0 was already created with ipv6 disabled! AKA IPv6 privacy extensions == --sysctl net.ipv6.conf.eth0.use_tempaddr flag Network protocol has IPv6 == --sysctl net.ipv6.conf.all.disable_ipv6=0 flag You don't need to set it manually. All you need is recreate the br0 docker network, as docker doesn't support edit existing networks. So, after step 4, the more elegant way to do is: docker network inspect br0 to find all the containers that uses br0. You have to remove those containers. Not just stop it. Double check to see if you have anything valuable, containers should be stateless so it should be fine. docker network rm br0 remove your br0 docker network. restart your docker in unraid docker setting docker network inspect br0 yay it's been recreated with right ipv6 subnet too! docker container inspect <container name> | grep GlobalIPv6Address to get your container ipv6 address on another computer, ping it ip -6 fxxx:xxxx:xxxx and you should be all set! No more --sysctl on every single containers P.S. If are on a different VLAN than your main network and run tcpdump -i br0 icmp6 and 'ip6[40] == 134'and you don't see any RA messages after you enable IPv6 (and your router already has prefix delegation enabled), your ISP likely only delegated a single /64. :( In that case you cannot assign additional global IPv6 subnets to other VLANs — you’ll need to use ULA (Unique Local Addresses) statically.