Oi pessoal
Isto não é um problema. Lamento se este for o lugar errado para fazer esta pergunta. Se este não for o lugar certo, indique-me o lugar certo.
Eu entendo que podemos usar docker-machine para conectar a diferentes hosts usando drivers como Virtualbox, driver do provedor de nuvem, etc. Se eu já tiver um host executando o Docker dentro do baremetal Linux, como integramos isso com docker-machine? Sem docker-machine, eu poderia fazer o mesmo executando um daemon do Docker em uma porta específica e conectando externamente do cliente docker ao ip e porta do daemon do docker. Existe uma opção na docker-machine para criar um host sem nenhum driver, é para esse propósito? Não consegui descobrir como usá-lo para se conectar.
obrigado
Sreenivas
Olá @smakam , acredito que o que você está procurando é o driver url
: http://docs.docker.com/machine/#adding -a-host-without-a-driver
Olá @nathanleclaire
Obrigado pela resposta.
Eu olhei o link que você mencionou e tentei o seguinte, sem sorte.
Primeiro, tentei sem qualquer TLS:
Na máquina Ubuntu, fiz isso para iniciar o agente docker:
sudo docker -d -H unix: ///var/run/docker.sock -H tcp: //192.168.56.101 : 2376 &
No Windows, onde eu tinha a docker-machine instalada, fiz o seguinte:
$ docker-machine create --url = tcp: //192.168.56.101 : 2376 custom6
← [34mINFO ← [0m [0000] "custom6" foi criado e agora é a máquina ativa.
$ docker-machine ls
NOME DO ESTADO DO MOTORISTA ATIVO URL SWARM
custom6 * nenhum tcp: //192.168.56.101 : 2376
Eu recebo este erro:
$ docker-machine env custom6
← [31mFATA ← [0m [0000] abrir C: \ Users \ srmakam.docker \ machine \ machines \ custom6ca.pem: O sistema não pode encontrar o arquivo especificado.
Não tenho certeza se docker-machine aplica TLS. Tentei iniciar o agente docker com certificado e chave e tentei com o cliente docker, mas também não tive sorte.
obrigado
Sreenivas
Essencialmente, exigimos o TLS em nossa forma atual. Se você configurar sua própria CA e certificados / chaves, acho que provavelmente poderá usá-los por meio das opções --tls-ca-cert
, --tls-ca-key
gloabl para a máquina Docker. @ehazlett Algum comentário?
Oi
Eu tentei com TLS, ainda não consegui fazer funcionar, não tenho certeza do que estou perdendo:
Iniciei o docker no meu host Ubuntu:
sudo / usr / bin / docker -d --tlsverify --tlscacert =
Então, tentei criar um host docker-machine sem driver:
docker-machine --tls-client-cert =
Quando tentei ver o ambiente, recebo o seguinte erro:
$ docker-machine env custom3
← [31mFATA ← [0m [0000] abra C: \ Users \ srmakam.docker \ machine \ machinescustom3ca.pem: O sistema não pode encontrar o arquivo especificado.
obrigado
Sreenivas
Você provavelmente gostaria de usar o CA existente, cliente, etc. para todas as coisas relacionadas à máquina, pois as configurações de --tls-ca-cert
etc são globais.
Quanto ao seu daemon do docker, você deseja usar o certificado / chaves do CA e do servidor - acima, você está usando o certificado CA, mas a chave e o certificado do cliente. Você precisaria de algo como:
docker -d --tlsverify --tlscacert ca.pem --tlscakey ca-key.pem --tlscert server.pem --tlskey server-key.pem
@ehazlett
Tentei usar configurações globais no diretório "certs" para docker-machine create especificando opções na linha de comando, mas ainda reclama sobre "ca.pem" ausente nas máquinas /
Como obtenho "server.pem" e "server-key.pem"? Devo gerá-lo?
Consegui me conectar entre o docker client e docker agent em uma máquina separada usando TLS sem usar docker-machine.
obrigado
Sreenivas
Você pode mostrar os argumentos de linha de comando usados? Se você especificar a máquina certs deve apenas usá-los. Se não, é um bug :)
Oi @ehazlett
Primeiro, comecei o agente docker assim:
sudo / usr / bin / docker -d --tlsverify --tlscacert = / home / xxx / .docker / machine / certs / ca.pem --tlskey = / home / xxx / .docker / machine / certs / key.pem --tlscert = / home / xxx / .docker / machine / certs / cert.pem --host = unix: ///var/run/docker.sock --host = tcp: //0.0.0.0 : 2376
Então eu iniciei o cliente docker-machine assim:
docker-machine --tls-ca-cert = / home / xxx / .docker / machine / certs / ca.pem --tls-client-key = / home / xxx / .docker / machine / certs / key.pem - -tls-client-cert = / home / xxx / .docker / machine / certs / cert.pem create --url = tcp: //0.0.0.0 : 2376 custom3
Recebi este erro ao definir o ambiente:
xxx @ ubuntu : ~ $ docker-machine env custom3
abra /home/xxx/.docker/machine/machines/custom3/ca.pem: tal arquivo ou diretório não existe
Aqui, estou executando o docker agent e docker-machine na mesma máquina Ubuntu. Eu recebo um erro semelhante ao executar o agente docker no Ubuntu e docker-machine no Windows.
obrigado
Sreenivas
Você não deve usar key.pem
e cert.pem
para o mecanismo Docker. O mecanismo precisa de um par de chave / certificado do servidor (a máquina os criará).
Para o ambiente, como você criou a máquina custom3
? Parece que algo deu errado durante a criação se esse arquivo não existir.
Oi @ehazlett
Como devo iniciar o docker engine? De acordo com meu entendimento, a máquina docker ordena o uso de TLS.
Foi assim que criei a máquina custom3. Isso não me deu nenhum erro.
docker-machine --tls-ca-cert = / home / xxx / .docker / machine / certs / ca.pem --tls-client-key = / home / xxx / .docker / machine / certs / key.pem - -tls-client-cert = / home / xxx / .docker / machine / certs / cert.pem create --url = tcp: //0.0.0.0 : 2376 custom3
Devo criar o par de chave / certificado do servidor manualmente, como a máquina faria se o driver fosse usado com a docker-machine?
obrigado
Sreenivas
@smakam isso deve estar correto. Ele deve gerar uma chave de servidor com base nessa CA existente. Vou fazer alguns testes para ver se há um problema.
@smakam Alguma atualização sobre este problema ou podemos fechá-lo?
@nathanleclaire Ainda não consigo fazê-lo funcionar. Eu até tentei com docker-machine 3.0 com procedimento de driver genérico mencionado aqui (http://blog.docker.com/2015/06/docker-machine-0-3-0-deep-dive/)
Isso é o que é mencionado:
docker-machine create -d generic \
--generic-ssh-user ubuntu \
--generic-ssh-key ~ / Downloads / manualmente_created_key.pub \
--generic-ip-address 12.34.56.78 \
selva
Presumo que .pub seja um erro de digitação e precisamos fornecer uma chave privada. Recebi 2 tipos de erros em 2 hosts diferentes:
caso 1:
Importando chave SSH ...
Erro ao criar máquina: sair do status 1
Você vai querer verificar o provedor para certificar-se de que a máquina e os recursos associados foram removidos corretamente.
caso 2:
Importando chave SSH ...
Erro ao obter o comando SSH para verificar se o daemon está ativo: status de saída 1
Erro ao obter o comando SSH para verificar se o daemon está ativo: status de saída 1
btw, onde os logs detalhados da máquina docker são armazenados?
Eu tentei com docker-machine para windows e linux.
obrigado
Sreenivas
O mesmo problema.
As formas genéricas --url e -d não funcionam.
Tentei as mesmas etapas do autor da postagem original e tive um problema semelhante, quando tentei o driver genérico e encontrei um erro semelhante ao caso 1 (CentOS 7)
Mesmo problema. Não é possível usar --url e especificar o certificado.
Posso sugerir que a equipe do Docker escreva um breve tutorial nos guiando passo a passo. Seria muito útil.
O mesmo problema aqui com anyconnect vpn conectado, bem depois que reiniciei meu laptop sem qualquer conexão, ele se foi.
1 para o problema.
Tentei usar docker-machine create --url=
com minha configuração do docker existente no host remoto, mas sem sorte. DM falha ao tentar obter TLS de $HOME/.docker/machine/machines/<name>/ca.pem
.
Mesmo problema. Tentei as mesmas etapas, mas ainda nenhum certificado / chave do servidor foi gerado.
docker-machine versão 0.4.0
Docker versão 1.8.0
Mesmo problema. Tentei as mesmas etapas, mas ainda nenhum certificado / chave do servidor foi gerado.
docker-machine versão 0.4.1
Docker versão 1.8.1
@csokun @ miracle-in-sunday @narqo Geralmente, presume-se que usando --url
você "traga seus próprios certificados", embora eu admita que essa parte do código está enfraquecendo, então pode estar quebrado.
Se você deseja que certificados e chaves sejam gerados automaticamente, tente o driver generic
: https://docs.docker.com/machine/drivers/generic/
Se isso não funcionar para o seu caso de uso, posso pedir que você registre um problema separado detalhando as etapas exatas que está realizando e os resultados que está vendo?
Obrigado!
Olá pessoal, vocês tentaram com --virtualbox-hostonly-cidr especificado? Funcionou para mim:
BartSlaman @ VLRNB176 ~
$ docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.99.100/24" dev4
Criando VirtualBox VM ...
Criando chave SSH ...
Iniciando VirtualBox VM ...
Iniciando VM ...
Para ver como conectar o Docker a esta máquina, execute: C: \ Arquivos de programas (x86) \ Git \ bindocker-machine env dev4
BartSlaman @ VLRNB176 ~
$ docker-machine env dev4
export DOCKER_TLS_VERIFY = "1"
export DOCKER_HOST = " tcp: //192.168.99.101 : 2376"
export DOCKER_CERT_PATH = "C: \ Users \ BartSlaman.docker \ machine \ machines \ dev4"
export DOCKER_MACHINE_NAME = "dev4"
Saudações
Bart Slaman
Alguma atualização sobre este problema? Eu tentei --url com --tls- * mas me enganei "open /Users/user/.docker/machine/machine/ss/ca.pem nenhum arquivo ou diretório". Eu uso docker-machine versão 0.4.1
O mesmo aqui, mas um erro diferente na criação:
Importando chave SSH ...
Erro de SSH cmd!
comando: sudo hostname interno && echo "interno" | sudo tee / etc / hostname
err: sair do status 1
saída: sudo: nenhum tty presente e nenhum programa askpass especificado
E então, ao executar eval "$ (docker-machine env internal)":
abra /Users/marlon/.docker/machine/machines/internal/ca.pem: não existe esse arquivo ou diretório
Isso significa que os certificados não estão sendo gerados.
Engraçado, eu consigo ssh para a máquina rodando "docker-machine ssh internal".
Consegui fazer --url
funcionar e apontar para um mecanismo Docker existente no DigitalOcean criado com a Docker Machine.
Para usar --url
ou o driver none
, apenas copiei a pasta ~/.docker/machine/machines/dobox/
existente na máquina que usei para criar o host e excluí cert.pem
, key.pem
, id_rsa.pub
, id_rsa
e config.json
(deixando ca.pem
, server.pem
e server-key.pem
). Em seguida, gerei um novo par de certificado / chave de cliente (https://docs.docker.com/articles/https/, começando em "Para autenticação do cliente") dentro do diretório recém-criado de antes e copiei para a máquina que eu estava tentando se conectar de. Por último, adicionei o host remoto usando docker-machine create --url=tcp://SOME_IP:2376 dobox
e movi os certificados para onde a Máquina Docker espera que estejam: ~/.docker/machine/machines/dobox/
. A pasta já deve estar lá e conter config.json
, então você está apenas adicionando seus certificados. Não estou tentando alterar o esquema de sinalizadores / autenticação TLS que o Docker está usando, que são:
--tlsverify \
--tlscacert="/home/roberto/.docker/machine/machines/dobox/ca.pem" \
--tlscert="/home/roberto/.docker/machine/machines/dobox/cert.pem" \
--tlskey="/home/roberto/.docker/machine/machines/dobox/key.pem" \
-H=tcp://SOME_IP:2376
Agora posso docker $(docker-machine config dobox) images
ou apenas eval "$(docker-machine env dobox)"
etc na segunda máquina cliente.
docker-machine versão 0.4.0
Docker versão 1.8.2
Como autenticar cliente e servidor em docker. Cujo nome de usuário e senha eu tenho que configurar com ele
Estou usando https://docs.docker.com/reference/api/docker_remote_api_v1.20/
e ter cliente docker e servidor na mesma máquina host.
E também me avise se ambos não estiverem na mesma máquina.
Gente pelo amor de Deus, adicione tutorial de como importar máquinas docker existentes.
Eu criei 2 máquinas diferentes do azure em nuvem a partir de 2 PCs separados e agora não consigo me conectar do PC a uma máquina azul que foi criada em outro.
Já passei 2 noites, experimentando todas as sugestões e sem resultado.
@nathanleclaire wdyt?
@ dmp42 Sobre o que exatamente? --url
quebrar é um problema bem conhecido e queremos oferecer suporte ao uso de máquinas de vários computadores diferentes em breve com configurações portáteis.
Suponho que seria ótimo ter pelo menos alguma declaração clara de que a importação de hosts existentes, de PC para PC, não está funcionando agora (ou tem alguns problemas conhecidos) em algum lugar da documentação oficial ou aqui no github.
@baio +1
Tenho um host Centos 7 no qual já instalei o pacote docker padrão do repositório Centos padrão - ou seja, não usei o pacote do site do Docker.
Em minha estação de trabalho local, quando tento criar a máquina para este host Centos 7 usando o driver genérico, ele falha com "exit status 1" ao tentar instalar um pacote chamado "docker-engine".
Suponho que isso não funcione se o Docker já estiver instalado no host remoto.
Relacionado: # 2270
Acho que tenho um exemplo reproduzível mínimo:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Box
config.vm.box = "ubuntu/precise64"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box"
# To make this easily reproducible
config.ssh.insert_key = false
config.vm.network "private_network", ip: "192.168.50.4"
end
$ vagrant up
ssh -i ~/.vagrant.d/insecure_private_key [email protected]
^ Isso funciona para mim
$ docker-machine create -d generic --generic-ssh-user vagrant --generic-ssh-key ~/.vagrant.d/insecure_private_key --generic-ip-address 192.168.50.4 repro
Importing SSH key...
Error creating machine: Maximum number of retries (60) exceeded
You will want to check the provider to make sure the machine and associated resources were properly removed.
Vocês estão obtendo o mesmo resultado? Avise-me se houver mais alguma coisa que eu possa tentar para ajudar na depuração.
Mesmo problema aqui. Incapaz de fazer --url
(sem driver) funcionar com:
--tlsverify -H=unix:///var/run/docker.sock -H=0.0.0.0:2376 --tlscacert=/root/.docker/ca.pem --tlscert=/root/.docker/cert.pem --tlskey=/root/.docker/key.pem
~/.docker/machine/machines/mymachine/
Ao digitar docker-machine env mymachine
, falha em:
Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "": open /Users/f2i/.docker/machine/machines/anakin/server.pem: no such file or directory
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
Sem docker-machine, tudo parece bem:
> docker --tlsverify -H=myhost:2376 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
Apenas me perguntando qual é a diferença real entre genérico ( --driver "generic" --generic-ip-address ...
) e nenhum driver ( --driver "none"
--url ...) ?
Estou entendendo que o genérico se conecta por SSH (então é como usar docker diretamente no servidor remoto) e nenhum driver se conecta ao host usando TCP.
Conseqüentemente, sem usar server.pem e server-key.pem no host do cliente? Eles não devem ser gerenciados por máquina. Direito ?
Mesmo fornecendo os últimos arquivos PEM, ele falha em:
Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "": crypto/tls: failed to parse private key
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
O "sem driver" é mais um driver de teste de integração usado para desenvolvimento. Mas se você hackear o suficiente, sua configuração pode ser usada para registrar uma máquina existente. Ele está programado para ser removido em uma versão futura (# 2437). A documentação atual é enganosa neste driver none
.
O driver generic
deve ser usado para registrar e instalar corretamente o docker em qualquer host.
Observe que, no mínimo, ele reiniciará o daemon do docker no host de destino. Mas é uma maneira confiável de registrar qualquer máquina 'genérica' na máquina docker, desde que você forneça um acesso ssh.
@jeanlaurent o problema com o driver generic
é que ele interfere na sua máquina se o docker já estiver instalado (por exemplo, alterando o nome do host; executando yum update
). Acho que o que muitos de nós estamos tentando dizer é que o driver none
tem um caso de uso de primeira classe e, se funcionasse corretamente, seria um recurso valioso para muitos de nós (além dos drivers direcionados) .
Concorde com @metasim sobre isso. O driver none
é um caso de uso muito comum. Esta é uma das formas mais básicas de interagir com a API docker remota. Seria lamentável chamá-lo de test
. Peraphs, o enganoso vem do fato de que não queremos criar / gerenciar uma nova máquina ( docker-machine create
), mas apenas nos conectar a uma máquina existente ...
Não estou dizendo que não deveríamos ser capazes de 'registrar' a máquina existente na docker-machine de uma forma ou de outra, apenas precisamos fazer isso da maneira correta. Há muita confusão em torno do driver none
, ele não funciona em muitos lugares e as pessoas o estão usando de forma inadequada. A intenção aqui é preparar o terreno para um recurso real register existing machine
.
Mas uma vez que uma máquina é 'hackeada' na docker-machine através do driver none, há um monte de coisas que vão quebrar a cadeia -> restart
, upgrade
e ssh
obviamente. Fazer uma alteração manual no arquivo json é tão eficiente quanto usar o driver none
para registrar uma máquina.
@metasim Atualizar o generic
para não 'bagunçar com sua máquina' é uma maneira de lidar com isso.
@vpusher Podemos precisar projetar um recurso de registro adequado.
@jeanlaurent Obrigado pela sua resposta. Posso ver que atualizar generic
para lidar com este caso de uso (incluindo as chaves existentes) pode ser um bom caminho a percorrer. No entanto, no espírito de "separação de interesses", recomendo considerar um novo driver ( existing
?, preconfig
?, manual
?, diy
? :-)) para lidar com este caso de uso, particularmente para que a estabilidade dentro desse contexto estreito possa ser melhor estabelecida.
PARA SUA INFORMAÇÃO. # 2260 e # 2269 (fechado, mas não realmente resolvido) foram uma tentativa de capturar parte dessa confusão em torno do driver none
PS: Acho que é totalmente aceitável que alguns comandos não sejam explicitamente suportados neste caso de uso (por exemplo, restart
, upgrade
, etc.).
@metasim Sim, um driver dedicado é provavelmente a melhor maneira de lidar com um recurso de registro, mas não a única, um comando dedicado é outra. Mas antes de decidir como fazer isso, precisamos esclarecer / definir em qual caso todos nós precisamos registrar uma nova máquina sem docker-machine
instalar o docker nela.
Se você der uma olhada em PR # 2442, por exemplo, executaremos ping no host docker para a versão docker. Porque queremos ser capazes de fornecer atualizações em algum ponto, ou avisar que seu host docker é muito antigo com seu cliente docker atual. Com uma máquina na qual não instalamos o daemon do docker, isso será difícil ou pelo menos muito instável.
Se considerarmos que podemos atualizar o driver generic
alguma forma, estou me perguntando para qual caso de uso alguém gostaria de registrar uma máquina na docker-machine sem fornecer acesso ssh?
O que é seu ? Vamos listá-los.
Alguns comentários sobre como definir o caso de uso para none
e / ou potencialmente descontinuá-lo aqui: https://github.com/docker/machine/pull/2437#issuecomment -160768813
Meu sentimento é que nós (a equipe da Máquina) devemos:
none
, devemos esperar para removê-lo completamente até a versão 0.7.0.none
e trabalhe para definir o fluxo de trabalho futuro ideal (seja import
/ register
ou alterações no generic
driver) para que os usuários interessados possam acompanhar e ter tempo adequado para se preparar para as mudanças que estão por vir.@dgageot @jeanlaurent O que você acha ?
@jeanlaurent posso ver que ssh
seria praticamente necessário, o que não é tão ruim. Até agora, eu presumi que quase tudo poderia ser feito pela API REST.
Eu uso docker-machine
principalmente como uma ferramenta para configurar as variáveis env necessárias para fazer docker
falar com outro host. Eu nunca uso os comandos upgrade
/ restart
etc. Meus hosts Docker estão no vSphere com um modelo personalizado criado por meio de um fluxo de trabalho do vOrchestrator - usar o driver do vSphere na docker-machine não é uma opção.
Dito isso, eu percebo que meu caso de uso não é o único caso de uso, mas espero que seja algo a considerar pelo menos.
Provavelmente poderia substituir docker-machine
por um alias de shell, pelo menos para meus propósitos.
Aqui está um exemplo de caso de uso, caso ajude:
Eu gostaria de criar minhas máquinas ec2 na amazon usando elasticbeanstalk em vez de docker-machine, porque elasticbeanstalk tem muitos benefícios (como auto-escalonamento e reinicializações de máquina). Eu gostaria de registrá-los com docker-machine e controlá-los usando docker-swarm.
Atualizar essas máquinas para ter docker 1.9 é trivial, mas elas rodam algum Linux Linux (antigo fork do centos) e o generic não funciona com elas. Como o docker engine não tem tls, o truque que eu uso para gerenciá-los remotamente com o plain docker é expor o docker.sock em localhost: 2375 usando socat (bem como em https://github.com/sequenceiq/docker- socat) e fazer um túnel ssh da minha máquina local com algo como ssh -i id_rsa [email protected] -L 2375: localhost: 2375 -N. Em seguida, posso me conectar pela rede com docker --tls = false -H tcp: // localhost : 2375.
É muita ginástica. A combinação de acesso ssh e uma configuração de docker funcional (mesmo sem ssl) deve ser tudo que a docker-machine precisa para muitos casos interessantes (sem atualização, reinicie como outros notaram, mas eu nunca uso esses de qualquer maneira).
Espero que seja útil.
@bonitao Que bom que você esclareceu. Eu também tenho o caso de uso "túnel através do ssh" em alguns compromissos corporativos.
Estou apenas começando a tentar usar a máquina Docker com hosts existentes ... Concordo com as afirmações do none
... Ele tem valor hoje para a comunidade, já que o generic
ainda não está fazendo o que sua intenção é ... Passei inúmeras horas tentando fazer com que none
trabalhasse para saber que há uma proposta para renomeá-lo para test
. @nathanleclaire Algum plano para fazer o driver generic
funcionar conforme descrito ???
Gastei um bom tempo em https://github.com/docker/machine/issues/2628 e este é um caso de uso que temos ... Apoiando equipes existentes em toda a empresa com docker ...
Tenho pesquisado no Google, supondo que não entendi completamente, tentando descobrir como me conectar a uma máquina docker azul a partir do meu servidor de CI que criei em outro lugar. Acabei aqui e estou surpreso que isso realmente não seja possível (sem hackeamento).
Eu criei e coloquei instâncias da máquina docker do azure totalmente instaladas e em execução a partir de uma estação de trabalho e só quero ser capaz de controlar e implantar a partir de scripts CI, que podem ser executados a partir de várias instâncias escravas CI. Não há realmente uma maneira oficial de fazer isso?
Atualizei meu docker e agora não consigo mais me conectar à minha antiga instância docker-machine. eu recebo
Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "xxxxx:2376": open : no such file or directory
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.
os comandos regeenrate-certs me dão
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Detecting the provisioner...
Installing Docker...
Copying certs to the local machine directory...
Copying ca.pem to machine dir failed: open : no such file or directory
o engraçado é que eu posso
docker-machine ssh
sem quaisquer problemas..
alguma correção?
Cenário: servidor existente e funcionando com Docker e TLS habilitado.
Adicionar servidor / máquina existente à máquina docker:
docker-machine --tls-ca-cert path/to/ca.pem --tls-ca-key path/to/ca-key.pem --tls-client-cert path/to/client.pem --tls-client-key path/to/client-key.pem create --driver none --url tcp://HOST:2376 NAME
Em seu diretório de usuário (~ / .docker / machine / machines / NAME), adicione o mesmo certificado de cliente como "cert.pem" e "server.pem" e a chave do certificado do cliente como "key.pem" e "server-key. pem "também ajustar seu config.json para incluir as configurações SSH relevantes ...
Eu havia levantado essa questão. Recentemente, coloquei isso funcionando e coloquei as instruções aqui (https://sreeninet.wordpress.com/2015/05/31/docker-machine/) caso alguém queira consultar.
Aqui está um script que meio que funciona para mim:
https://github.com/docker/machine/issues/3344#issuecomment -212536797
@devcrust onde exatamente estão aqueles:
path/to/ca.pem
path/to/ca-key.pem
path/to/client.pem
path/to/client-key.pem
???
$ ls certs/
ca-key.pem ca.pem cert.pem key.pem
$ ls machines/adhoc/
ca.pem cert.pem config.json id_rsa id_rsa.pub key.pem server-key.pem server.pem
Não consigo configurá-lo corretamente. Eu tenho esse problema também :
Copying ca.pem to machine dir failed: open : no such file or directory
depois de atualizar para 0.6.0
.... Perdi o acesso tcp a 12 máquinas
@nathanleclaire Alguma atualização sobre isso? Estou tentando descobrir como eu me conectaria a um Docker Host em execução no Microsoft Azure, que criei em um computador diferente, usando docker-machine
. No momento, não tenho nenhuma solução.
Solução: _ (você deseja) _
Tão triste que tanto tempo se passou e ainda nenhum recurso foi introduzido para resolver este problema.
Por que vale a pena. Você pode criar uma máquina usando o driver genérico, mas isso irá reiniciar todos os seus containers.
Adicionando reinicialização: sempre em seus contêineres irá garantir que eles não parem. Eu apoiaria a opção de
Eu também gosto de ter uma opção de adicionar docker-machine.
Aqui estão dois projetos com diferentes abordagens para compartilhamento de máquina:
@jeanlaurent
O que é seu ? Vamos listá-los.
Minha ideia era conectar minha máquina local a um servidor físico existente com uma carga de contêineres em execução. Fazer docker-machine create --driver generic
provavelmente os parará e muito mais . Eu me pergunto por que ele precisa reiniciar o docker ...
Bem, eu posso simplesmente executar comandos sobre ssh, mas pela sua descrição parecia que docker-machine
poderia ser usado.
Mas então, se você criou uma VM de um computador e deseja gerenciá-la de outro. Ou você reinstalou seu sistema operacional local ... Ou deseja delegar o controle sobre a VM para outra pessoa ...
PS Estou dando meus primeiros passos com o Docker, então pode haver alguns pontos que estou perdendo ...
@ x-yuri Para "criar" uma máquina manualmente, basta copiar seus arquivos de .docker/machine/machines
e ajustar seus caminhos.
Comentários muito úteis
@nathanleclaire Alguma atualização sobre isso? Estou tentando descobrir como eu me conectaria a um Docker Host em execução no Microsoft Azure, que criei em um computador diferente, usando
docker-machine
. No momento, não tenho nenhuma solução.