Não é possível alterar o / etc / hosts no contêiner do docker com o sistema de arquivos root read_only

1

Estou tentando adicionar uma linha no arquivo /etc/hosts com um IP específico e um nome de host. O IP é estático e o nome do host é recuperável do /etc/hostname .

No entanto, quero que meu sistema de arquivos raiz seja somente leitura.

Então, recebo o seguinte erro: /etc/hosts: Read-only file system

Quando eu verifico com mount , é: ro .

Então, tento adicionar /etc/hosts como emptydir , mas isso não é permitido, pois /etc/hosts já está montado com erro: b'linux mounts: Duplicate mount point: /etc/hosts

Eu também estou tentando remover /etc/hosts no dockerfile e simblink para outro arquivo, mas recebo o seguinte erro: rm: cannot remove '/etc/hosts': Device or resource busy

Se eu não montar como read_only no sistema de arquivos, o /etc/hosts não é rw e normalmente posso fazer a alteração. Em seguida, o /etc/hosts não está montado como ro mas rw . Então esse valor é herdado.

Estou usando o manifesto do kubernetes ou o docker para compor a imagem do contêiner e concluí que preciso de algo como o --add-host no docker, mas recupero o nome do host dinamicamente de / etc / hostname.

    In 'docker-compose':
    extra_hosts:
      - "hostname:127.0.1.1"

    In 'kubernetes-yaml':
    hostAliases:
      - ip: "127.0.1.1"
        hostnames:
        - "hostname"

Existe uma maneira de obter o nome do host como uma variável em compor e yaml do docker?

Existe outra maneira de ignorar o arquivo ro mounted /etc/hosts quando o sistema rootfile é somente leitura?

    
por belabrinel 13.04.2018 / 16:45

0 respostas