Acesso a uma instância do docker - Best Practice

2

Quais são as práticas recomendadas para acessar as instâncias de janela de encaixe do lado de fora.

Estou planejando implantar várias instâncias docker (node.js, php, mysql), ou todos embalados em uma ou através de links docker entre recipientes.

É possível controlar a porta na máquina host para cada instância de janela de encaixe, mas qual deve ser a melhor prática para acessar essa instância de fora. Eu preferiria ter apenas subdomínio e me livrar da porta encaminhada da instância.

exemplo :

user@server:~/sandbox/docker-nginx$ sudo docker ps
CONTAINER ID    IMAGE   COMMAND    CREATED    STATUS    PORTS    NAMES

3fc7c57ed66c    docker-wordpress-nginx:latest   /bin/bash /start.sh   3 days ago          Up 3 days    0.0.0.0:49153->80/tcp   evil_poincare       

Comportamento esperado: Pedido wordpress.domain.com acessar o wordpress dentro dessa instância janela de encaixe, através do 49153 porto, mas o navegador não reescrever a Localização com essa porta.

Eu dei uma olhada / tentei várias abordagens, mas nenhuma me deu essa funcionalidade:

Any thoughts on that problem, and any recommendation on the best practice would be greatly appreciated, maybe I'm just missing something.

    
por Jean-Christophe Meillaud 06.03.2014 / 20:29

3 respostas

1

A melhor prática é evitar qualquer tarefa de linha de comando em um contêiner Docker, a melhor maneira de colocar seus contêineres nginx em funcionamento exatamente como esperado é criando uma imagem personalizada e ADICIONANDO seu arquivo de configuração no Dockerfile da imagem.

Você pode encontrar uma descrição detalhada sobre como criar sua imagem personalizada com configuração personalizada aqui .

    
por 01.10.2014 / 15:11
1

Estou usando o nginx para isso, funciona muito bem (para mim). De seus comentários parece que não está funcionando como você espera ...

Uma configuração simplista que deve funcionar está abaixo.

/etc/nginx/sites-enabled/wordpress.domain.com

server {
  server_name wordpress.domain.com;
  location / {
      proxy_redirect off;
      proxy_set_header Host $host ;
      proxy_set_header X-Real-IP $remote_addr ;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
      proxy_pass http://localhost:49153;
  }
}
    
por 07.03.2014 / 08:14
0

Minha resposta está um pouco atrasada: para referência futura, você deve dar uma olhada no link . Essa ferramenta gera automaticamente a configuração apropriada do Nginx para encaminhar solicitações de entrada para contêineres do Docker (com base em subdomínios).

Primeiro, inicie o nginx-proxy:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

Por exemplo, se você quiser redirecionar sub.domain.com para um contêiner específico, basta definir a variável de ambiente do contêiner VIRTUAL_HOST para " sub.domain.com ":

docker run -e VIRTUAL_HOST=sub.domain.com ...

Aqui está um tutorial detalhado que eu escrevi sobre isso: link .

Ele corresponde perfeitamente ao seu comportamento esperado.

    
por 05.04.2016 / 20:55

Tags