Encaminhando uma porta no docker-compose sem ter que abrir uma conexão SSH com a opção -L especificada

2

Eu tenho seguido o este tutorial sobre como começar a usar o Kubernetes usando o Docker containers, que é uma variação do este tutorial oficial modificado para usar docker-compose .

Consegui chegar até listar os nós usando

kubectl get nodes

mas só posso fazer isso se eu tiver uma conexão SSH aberta para o container em outra janela, aberta usando

docker-machine ssh docker-vm -L 8080:localhost:8080

Isso é bastante confuso e eu gostaria de poder lidar com isso no docker-compose.yml , mas não sei como

Eu tentei usar as opções ports e expose no arquivo iml, mas elas não funcionam. Quando tento encaminhar / expor a porta 8080 e obter os nós usando o comando kubectl acima, obtenho o seguinte erro:

error: couldn't read version from server: Get http://localhost:8080/api: EOF

Eu usei o docker-compose.yml do primeiro link na parte superior e fiz as seguintes modificações:

aipserver:
ports:
  - "8080:8080"
expose:
  - "8080"

Eu tentei isso em todos os contêineres especificados no docker-compose.yml , mas o problema persiste.

Como posso usar o docker-compose.yml para encaminhar / expor portas em meus contêineres sem ter que abrir uma conexão SSH com a opção -L especificada.

    
por Chris Wilson 12.11.2015 / 14:06

1 resposta

0

O servidor da API é exposto na rede host em 127.0.0.1:8080

Se você quiser expô-lo no docker-machine vm, precisará alterar o sinalizador --address para ser --address = 0.0.0.0: 8080 em vez de --address = 127.0.0.1: 8080

Isso irá expô-lo no endereço da VM em sua máquina (por exemplo, 1.2.3.4)

Se você tiver o encaminhamento de porta de caixa virtual configurado corretamente, isso também o disponibilizará em localhost: 8080 em sua máquina.

    
por 01.12.2015 / 20:48