docker: set hostname para container

39

Estou tendo problemas para configurar o nome do host em um contêiner do Docker em execução. Também estou tendo problemas para entender como especificar o nome do host depois que a imagem for iniciada.

Eu iniciei um contêiner de uma imagem que baixei:

sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss

Mas esqueci de especificar o nome do host por meio de -h ; Como posso especificar o nome do host agora que o contêiner está sendo executado?

    
por Miguel Ping 20.04.2014 / 09:54

6 respostas

37

Edite /etc/hostname é uma coisa para a qual você precisa de acesso ssh dentro do contêiner. Caso contrário, você pode girar o contêiner com a opção -h .

Para definir os nomes de host e domínio:

$ docker run -h foo.bar.baz -i -t ubuntu bash
root@foo:/# hostname
foo
root@foo:/# hostname -d
bar.baz
root@foo:/# hostname -f
foo.bar.baz
    
por 29.10.2014 / 09:32
4

Reiniciar o container seria a opção mais fácil - mas você também pode editar o / etc / hostname e ir a partir daí.

    
por 24.06.2014 / 08:02
3

Pare o contêiner e o serviço

sudo docker stop CONTAINER_NAME
sudo service docker stop

Editar arquivo de configuração (JSON) [Você deve fazer backup primeiro]

/var/lib/docker/containers/CONTAINER_ID/config.json

Substituir

"Hostname":"WHATEVER"

com

"Hostname":"NEW_HOSTNAME"

Iniciar contêiner e serviço

sudo service docker start
sudo docker start CONTAINER_NAME

(Opcionalmente, você também pode anexar a janela de encaixe)

sudo docker attach CONTAINER_NAME

Detalhes sobre janelas de encaixe (ou seja, CONTAINER_NAME, CONTAINER_ID) podem ser obtidos executando

sudo docker ps -a
    
por 26.01.2015 / 16:38
3

Caso você use --net=host , não será possível alterar o nome do host de -h ou de dentro da janela de encaixe.

Veja link

    
por 24.02.2016 / 21:15
0

link descreve uma maneira de fazer isso. A idéia básica é usar docker inspect para obter o pid do contêiner e, em seguida, inserir o namespace uts do contêiner via nsenter . A execução de hostname dentro desse namespace alterará o nome do host da instância do docker que compartilha esse namespace.

    
por 07.03.2017 / 15:08
-3

Em

 /var/lib/docker/containers/CONTAINER/config.json

encontre e defina

"Config":{"Hostname":"utils","Domainname":"mysite.com", ...}
    
por 05.05.2015 / 07:41