Isso não é possível no UFW vanilla devido ao fato de que o nome da interface está em um estado constante de irreversibilidade. Para definir algo assim, uma rede definida manualmente deve ser criada. Em suma, pode-se usar as opções de driver do bridge
do Docker em a configuração de composição para criar uma rede personalizada . Isso será parecido com:
networks:
my_bridge:
driver: bridge
driver_opts:
com.docker.network.bridge.name: my-bridge
A partir daqui, a configuração da ponte pode ser adicionada a cada serviço no arquivo de composição:
myimage:
image: myimage:1.0
ports:
- "2580:2580"
networks:
- my_bridge
Então, na próxima partida do sistema Compose, a nova rede será criada com o nome próprio:
my-bridge Link encap:Ethernet HWaddr 11:22:33:44:55:66
inet addr:172.18.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:1122:3344:5566/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:788 (788.0 B) TX bytes:695 (695.0 B)
A partir daí, adicionar regras UFW para permitir a conexão à porta 1234 é trivial:
ufw allow in on my-bridge from any to any port 1234
E, de repente, tudo funciona perfeitamente!