Docker: Mapeia a porta do contêiner para um único endereço IPv6 no host

1

agora que alguns dos meus aplicativos de servidor são empacotados em contêineres do Docker, estou tentando implantá-los em meus servidores de produção. Meus contêineres devem estar acessíveis por IPv4 e IPv6 ao mesmo tempo. Normalmente, isso não é problema: se você mapear portas de contêiner para hospedar portas, por exemplo, via docker-compose, o Docker usará os endereços IPv6 e IPv4 disponíveis.

Meu problema é: não há apenas um endereço IPv4 e IPv6 disponível no meu servidor, mas vários. O contêiner do meu aplicativo só deve usar um endereço IPv4 específico e um endereço IPv6 específico do host. Você pode vincular uma porta contêiner a um IPv4 endereço usando a seguinte sintaxe de composição do docker:

ports:
    - "127.0.0.1:8001:8001"

(Veja link )

Infelizmente, não consegui encontrar nenhuma informação sobre como fazer isso com endereços IPv6. Existe alguma maneira de ligar uma porta de contêiner a um único endereço IPv6 específico no meu host do Docker?

    
por Thomas 04.04.2017 / 09:41

2 respostas

0

A partir da versão 1.15 do docker-compose (possivelmente 1.14), agora você pode usar dois pontos adicionais na definição de porta para o IPv6:

version: '3.3'

services:
  app:
    image: nginx
    ports: 
    - "::1:8080:80"

O problema relevante pode ser encontrado aqui: link

    
por 02.09.2017 / 02:41
0

Minha solução é vincular todas as portas expostas do contêiner a 127.0.0.1 e, em seguida, encaminhar conexões IP externas v4 e v6 via HAProxy para 127.0.0.1. Talvez não seja a melhor maneira de fazer isso, mas uma solução para mim.

    
por 07.04.2017 / 09:31