Machine: Docker Machine ahora está en modo de mantenimiento

Creado en 13 jul. 2018  ·  65Comentarios  ·  Fuente: docker/machine

Como ha sido obvio desde hace algún tiempo, poco a poco hemos dejado de implementar o aceptar nuevas funciones para el proyecto. Su uso de escritorio ha sido reemplazado principalmente por nuestro producto Docker Desktop . En general, el aprovisionamiento en una variedad de proveedores de la nube se logra mejor con infrakit . En general, perseguir el desarrollo activo del proyecto ya no tiene sentido en este momento, por lo que estamos cerrando oficialmente el grifo para cambios sin corrección de errores a partir de hoy.

Estoy seguro de que muchos querrán participar en esto, por favor mantenga la discusión civilizada y manténgala dentro de este hilo para que podamos mantener las cosas manejables.

Comentario más útil

Le pediría que también actualice el archivo readme.md

Todos 65 comentarios

Oh :(

Bueno, esto estuvo bien mientras duró :)
¡Gracias a todos por el buen trabajo!

Le pediría que también actualice el archivo readme.md

Si el soporte oficial para la máquina está cerrando, ¿cuál es la probabilidad de que continúe el soporte impulsado por la comunidad en este repositorio?

para aquellos de ustedes que necesitan una máquina, hay algo de actividad en la organización https://github.com/machine-drivers , y puede tener sentido para usted trabajar y liberar de https://github.com/machine- controladores / máquina ...

Ya hemos estudiado la posibilidad de agregar parches a esta organización, ya que parece que no se pueden fusionar aquí: # 4509 (Esto es un bloqueo para versiones localizadas de Windows). Lo mejor es seguir adelante con algún tipo de lanzamiento, sin embargo para nosotros: minikube y minishift solo necesitamos vincularnos a una biblioteca.

@ shin- Como idea, los documentos de "Getting Started" del nuevo usuario todavía usan docker-machine como parte central de la introducción.

Para las personas interesadas en actualizar los documentos, ¿por cuáles deberían guiar a las personas?

Creo que esto es realmente una pena. El verdadero poder de la máquina estaba en algún lugar entre la simplicidad de hacer que las cosas funcionen en una máquina usando Desktop y la complejidad detrás de infrakit . La máquina era perfecta para poner en marcha algunas máquinas para probar cargas de trabajo distribuidas a menor escala.

¡Hola!

¿Alguien tiene un software alternativo para Linux? No quiero ejecutar docker como root en mi máquina host y docker-machine estaba proporcionando cierto aislamiento a este respecto. ¿Existe algún plan para Docker para Linux?

¡Gracias!

@gilbsgilbs ¡Todavía puede usar docker-machine como lo hace actualmente!

@ shin- Gracias por tu sugerencia. Estoy comenzando un nuevo proyecto, por lo que usar Docker-machine sería un movimiento extraño, ¿no?

@ shin- Bueno ... estar cerrado al tipo de relaciones públicas significa usarlo para nuevos proyectos probablemente sea una mala idea. :guiño:

@justinclift No quiero entrar en demasiados detalles porque tenemos más información en una declaración preparada, pero como traté de indicar en la publicación original, el proyecto no está cerrado para los RP; simplemente buscamos limitarlos a correcciones de errores en lugar de a nuevas funciones. Si el conjunto de características de la iteración actual de docker-machine ajusta a sus necesidades, no hay razón para abandonarlo, incluso para nuevos proyectos.

Parece que infrakit tampoco está activo. No hubo lanzamientos durante más de un año, no hubo actualizaciones en DockerCon 2018, no hubo documentación de usuario similar a https://docs.docker.com/machine/

La documentación de la máquina Docker sugiere probar Docker Cloud, que a su vez se está cerrando a favor de Docker EE (que generalmente no está disponible)

Todo anima a bifurcar el proyecto o buscar en otra parte: https://landscape.cncf.io/grouping=landscape&landscape=infrastructure-automation&sort=first-commit

No me quejo, solo describo mi perspectiva.

Interesante. En cuanto al historial de confirmaciones de solo hombre .

La actividad parece haberse agotado alrededor de abril / mayo . Adivinar el tiempo de las personas se redirigió a otras cosas.

¿Es esa una forma incorrecta de ver las cosas?

@ shin- pero muchos de los RP (como las correcciones de errores que proporciono para que la internacionalización en Hyper-V funcione) no se han tomado para fusionar. Esto no es una buena indicación de "simplemente estamos buscando limitarlos a correcciones de errores en lugar de nuevas características" a la luz de "no hay razón para abandonarlo, incluso para nuevos proyectos".

@espinilla-

No quiero entrar en demasiados detalles porque tenemos más información en una declaración preparada

¿Podría vincular a esa declaración oficial (siempre que se publique?) No puedo encontrarla.

Recomiendo encarecidamente cambiar los documentos para que estén actualizados .
Mi última hora fue una exploración sin sentido de boot2docker, que claramente apunta a la máquina acoplable, que tiene una advertencia en su página principal que aconseja utilizar la nube acoplable como tecnología actualizada. Esto apunta a la descripción del documento en la nube de Docker (¡no a la página de migración!), Lo que me obligó a buscar en Google para descubrir que se suspendió en mayo (pero se anunció en marzo, es decir, hace 7 meses). Ahora vine aquí para sugerir que se elimine la advertencia del documento de la máquina acoplable, descubrí en este problema de 3 meses que la máquina acoplable también se está descontinuando.
Así no es como debería funcionar la documentación. Volveré a alguna solución ad hoc, pero abandonaría la ventana acoplable si no la estuviera usando.

@aliceminotto Nos ayudaría a todos a actualizar los documentos obsoletos si pudieras señalar los sitios o páginas de los que estás hablando.

docker-machine no va a desaparecer, simplemente no aumenta el alcance de las funciones.

Docker Cloud no va a desaparecer, simplemente ya no se usa para el aprovisionamiento / administración de servidores. Todavía está ahí para la construcción de imágenes. Docker tiene otras herramientas para servidores de producción como Docker para AWS , Docker para Azure y DCI para Docker Enterprise.

Me había olvidado por completo del antiguo sitio web http://boot2docker.io y no me di cuenta de que el aviso allí estaba tan mal redactado (¡disculpas por cualquier confusión que haya contribuido a ello!). Ahora he actualizado (y adelgazado) que contenido para aclarar mejor que boot2docker, la antigua herramienta CLI, es lo que se desaprobó en favor de Docker Machine y que boot2docker, la distribución, no está desaprobado, sino que está en modo de mantenimiento (igual que Docker Machine).

Para decirlo de otra manera: nuevas versiones de Docker, actualizaciones del kernel, etc., pero intentos concertados de mantener las nuevas características / funcionalidades al mínimo absoluto para garantizar un mantenimiento continuo para las pocas personas que aún no pueden realizar la transición al Docker para Windows más adecuado. / Docker para productos Mac o las herramientas / soluciones del servidor de producción a las que se hace referencia anteriormente (usuarios de Windows 7 que no pueden Docker para Windows en absoluto, usuarios de Windows 10 Home que por lo tanto no pueden Hyper-V, usuarios de VirtualBox que por lo tanto no pueden Hyper- V, etc., etc.).

@tianon : es posible que también desee mencionar a los usuarios de Linux que no quieren hacer la transición a Mac o Windows ...

@afbjorklund ¿Por qué necesita boot2docker si ya está usando Linux?

@Vanuan : ya sea porque su distribución era demasiado antigua (por ejemplo, RHEL6), o porque no se le permitió root ...

De cualquier manera, la transición a Docker Desktop _no_ es una opción: ¿es Docker Engine o DIY LinuxKit?

Me gustaría agradecer a los creadores de docker-machine y boot2docker, por hacer que Docker sea más accesible.

Y con el esfuerzo de los controladores de

¿Por qué debería usar la distribución del servidor para escritorio? ¿Y por qué no soy administrador de mi escritorio? ¿Pero de alguna manera se me permite acceder a KVM?

Parece que está buscando una solución para ejecutar Docker en el servidor KVM. Si ese es el caso, actualmente estoy explorando infrakit aquí: https://github.com/docker/infrakit/issues/913

Pero si solo está buscando ejecutar Docker en el escritorio de Linux, no entiendo por qué no instalaría la última versión de Ubuntu junto con Docker CE. Si desea ejecutarlo en VM, hágalo. Puede montar su directorio de inicio en VirtualBox y usar la ventana acoplable sobre SSH. Cual es el problema aqui? No hay Docker para Linux Desktop porque no tiene sentido. Al menos para mi.

¿Por qué debería usar la distribución del servidor para escritorio? ¿Y por qué no soy administrador de mi escritorio? ¿Pero de alguna manera se me permite acceder a KVM?

Algunas personas tienen que usar cualquier sistema operativo de escritorio que les dé su empleador. RHEL6 es un ejemplo del que me habló (hace unos meses) un tipo que trabajaba en un mercado de valores. :guiño:

Como punto de datos general, con Libvirt (al menos solía tener) un concepto de VM que los usuarios podrían ejecutar en su cuenta, eso sería solo para ellos. por ejemplo, no es accesible para otras personas conectadas a la misma máquina

No estoy seguro de si eso se desarrolló alguna vez en profundidad, ya que la mayor parte del esfuerzo de desarrollo de Libvirt se dirigió hacia cosas de VM de "nivel de sistema" en lugar de nivel de usuario.

si solo está buscando ejecutar Docker en el escritorio de Linux, no entiendo por qué no instalaría la última versión de Ubuntu

A muchas personas no les gusta Ubuntu por una razón u otra. :guiño:

Comenzando con v18.09 ( DOCKER_HOST=ssh:// ), configurar máquinas Docker remotas sin docker-machine es realmente trivial: https://medium.com/lucjuggery/docker-tips-access-the-docker- demonio-via-ssh-97cd6b44a53

Como punto de datos general, con Libvirt (al menos solía tener) un concepto de VM que los usuarios podrían ejecutar en su cuenta, eso sería solo para ellos. por ejemplo, no es accesible para otras personas conectadas a la misma máquina

Sí, se llama qemu: // sesión
El último GNOME incluso tiene una buena aplicación para eso: Boxes: https://en.wikipedia.org/wiki/GNOME_Boxes

La virtualización de KVM en modo de usuario tiene algunos inconvenientes con respecto a la red. Entonces creo que Virtualbox es la única opción en esas condiciones.

Y tener CLI para VirtualBox, la elección es vaga. Solo necesitas alguna distribución de Linux para ejecutar Docker encima. Y la más probada en batalla es Ubuntu / Debian. Sin embargo, puedes descargar cualquier otra distribución. Pero debe empaquetarlo usted mismo para usarlo con Vagrant: https://www.vagrantup.com/docs/virtualbox/boxes.html

Solo digo que docker-machine era una buena solución para los usuarios de Linux, al igual que lo era para los usuarios de Mac y Windows antiguos ... Todo lo que necesitaba era ejecutar la ventana acoplable en un puerto no estándar, en lugar de codificado 2376? Y un nuevo controlador qemu que no requería grupo libvirt (es decir, root). Tal vez infrakit / hyperkit sea una alternativa en el futuro, pero en este momento (el enlace de arriba) todavía parece bastante áspero en los bordes.

@Vanuan : Conozco las opciones ubuntu / vagrant, me referí a ellas simplemente como " Docker Engine " arriba.

@justinclift : cada usuario obtiene sus propias claves ssh / certificados de docker, por lo que las máquinas están razonablemente separadas.

@afbjorklund No se preocupe. Han pasado años desde que trabajé en Red Hat en el equipo Libvirt. En estos días, generalmente lo uso para diagnosticar problemas, en lugar de seguir siendo muy profundo con él. :sonreír:

@afbjorklund Aclaremos esto.

es posible que también desee mencionar a los usuarios de Linux que no desean realizar la transición a Mac o Windows ...
De cualquier manera, la transición a Docker Desktop no es una opción: ¿es Docker Engine o DIY LinuxKit?
Conozco las opciones ubuntu / vagrant, me referí a ellas simplemente como "Docker Engine" arriba.

boot2docker es tanto la distribución ( boot2docker.iso ) como la herramienta para administrar virtualbox ( boot2docker-cli ). boot2docker.iso incluye Docker CE (antiguo motor Docker):

https://github.com/boot2docker/boot2docker/blob/d465167d83310295b5847ba315905f52c3ca1435/Dockerfile#L426 -L435

Y esto se mantendrá actualizado a las nuevas versiones de Docker CE.

El boot2docker-cli se ha ido, pero en esencia es simplemente vagabundo con virtualbox. Vagrant todavía está por aquí.

La máquina Docker con controlador KVM usa boot2docker.iso para aprovisionar _Docker CE_ a las nuevas máquinas virtuales libvirt .

Docker Desktop utiliza distribuciones creadas con linuxkit para aprovisionar _Docker CE_ a Hyper-V y xhyve.


Para imaginarlo todo:
infrastructure


Como puede ver, todas las soluciones incluyen Docker Engine (actualmente llamado Docker CE para Linux ) de una forma a otra.

Hay demasiados entornos y soluciones de virtualización / nube. En consecuencia, no existe una herramienta que pueda funcionar igualmente bien en Windows / Mac / Linux y sea compatible con QEMU / Virtualbox / xhyve / Hyper-v junto con diferentes nubes y aprovisionamiento SSH. Y dicha herramienta también necesita capacidad de configuración: admite diferentes puertos, gestión de recursos de memoria / CPU, redes, etc. Así que probablemente una herramienta de propósito general junto con algún archivo de configuración descargado a través de http sería la mejor solución.

@Vanuan : sí, esto es lo que dijimos anteriormente. Para reemplazar docker-machine, debe cambiar a Mac o Windows y Docker Desktop, al menos hasta que _alguien_ cree algo similar con LinuxKit y libvirt ...

Ya no necesitamos hablar de boot2docker-cli, y el soporte para los controladores de Linux ya se ha trasladado a la organización "machine-drivers", ya que solo VirtualBox está disponible con la máquina docker estándar.

@ shin- Si ya no permite nuevas funciones, considere agregar una nota muy clara en la parte superior de README.md AND CONTRIBUTING.md .

Es bastante molesto leer ambos archivos detenidamente, implementar un controlador (varios días de trabajo) y no darse cuenta de que ustedes nunca fusionarán ningún controlador. Esto debería ser mucho más claro.

Si todo esto es un malentendido y todavía puedo solicitar mi conductor, háganoslo saber. Es solo que por el momento solo se menciona en un archivo oculto que las personas verán una vez que creen la solicitud de extracción.

Todavía no hay información clara sobre el modo de mantenimiento en README.md y / o CONTRIBUTING.md . Pasé la mitad de mi tiempo de vacaciones para encontrar una solución de trabajo para la creación de VM ProxmoxVE y Linux liviano para la implementación de Docker: encontré que la combinación de docker-machine + docker-machine-driver-proxmox-ve funciona bastante bien para ese uso caso. Desafortunadamente, se basa en boot2docker, que dice que está obsoleto a favor de docker-machine y el mantenedor de algún hilo sugiere Rancher OS. docker-machine ir al modo de mantenimiento sin definir claramente lo que eso significa (decir que solo se aceptarían correcciones de errores y sugerir que está bien para nuevos proyectos es IMO en contradicción). También se mencionó un anuncio oficial en agosto de 2018, pero no hay signos de referencia aquí.

Desde la perspectiva de los externos, que quieren construir una infraestructura razonable para las PYMES, docker-machine no parece la solución correcta a largo plazo. Cualquiera puede sugerir lo que sería Reasonably Good ™ para aprovisionar y administrar ProxmoxVE VM como un hipervisor y un Docker compatible con Linux mínimo.

Desafortunadamente, se basa en boot2docker, que dice que está en desuso a favor de la máquina acoplable y el mantenedor en algunos subprocesos sugiere Rancher OS.

¿Puede ser más específico sobre dónde boot2docker afirma estar obsoleto en favor de la máquina acoplable para que pueda aclararlo adecuadamente? (porque no es cierto a menos que te refieras muy específicamente a la antigua herramienta CLI boot2docker que no se ha mantenido activamente en años)

La distribución boot2docker (específicamente, el artefacto boot2docker.iso lanzado con cada nueva versión de Docker CE) no desaparecerá en el corto plazo que yo sepa, aunque tiene un enfoque muy limitado ahora (y, por lo tanto, no es probable que se consideren nuevas funciones / funciones para la fusión).

@tianon Tienes razón, lamento la confusión. El mensaje en el sitio web dice boot2docker CLI ; a primera vista, no me quedó claro si hay alguna diferencia. Estoy bastante seguro de que otros usuarios también pueden confundirse, ya que lo más probable es que te enfrentes a boot2docker.iso . boot2docker CLI es algo de lo que nunca has oído hablar, es difícil decir cuál es la relación entre proyectos. OTOH boot2docker.iso declaración "maintenance mode" es vaga de la misma manera que docker-machine , que concluyo con base en esta respuesta .

Para resumir confusión:

  1. "maintenance mode" - no está claro en ambos proyectos, ¿puedo usar eso para la producción en pequeñas empresas?
  2. Ambos proyectos, desarrolladores / mantenedores líderes, sugieren el uso de otros proyectos que parecen no cubrir todos los casos de uso previamente admitidos.

Lo ideal sería tener una declaración clara de @tianon y @ shin- si el uso de docker-machine está bien para la producción.

No puedo hablar por Docker Machine, pero boot2docker nunca ha sido una buena opción para la producción; su objetivo es el desarrollo / uso personal de estaciones de trabajo.

Consulte también las notas agregadas en https://github.com/boot2docker/boot2docker#readme , donde he intentado aclarar lo que entendemos por modo de mantenimiento y que b2d no está diseñado ni recomendado para cargas de trabajo de producción.

Al igual que muchos otros, me sentí frustrado al enterarme de esto de Github Issues, después de que me esforcé en usar la máquina para un cliente SMB

Creé un PR para actualizar la documentación oficial, agregando un aviso sobre el modo de mantenimiento de la máquina.

Ver https://github.com/docker/docker.github.io/pull/9239

También sería bueno cambiar la ventana acoplable para comenzar https://docs.docker.com/get-started/part4/

editar: Encontré una solución que es instalar docker-ce en la instancia de aws ec2, y luego ssh reenviar el daemon de la ventana acoplable.

ssh -NL localhost:23750:/var/run/docker.sock -i ***.pem ubuntu@***.compute.amazonaws.com
docker -H tcp://localhost:23750 run hello-world

🎉

Comencé a usar docker-machine recientemente porque se instaló con Docker Desktop y me di cuenta de que podía ejecutar docker en instancias de aws mucho más poderosas que mi máquina local. La belleza es que las aplicaciones locales que usan comandos de la ventana acoplable, como Visual Studio Code, pueden funcionar con contenedores de máquina acoplable como si se estuvieran ejecutando localmente.

Me parece que la máquina acoplable no ha sido reemplazada, aunque hay muchas formas nuevas de aprovisionar clústeres, incluidos infrakit, kubernetes, etc.

Podría ser un malentendido. ¿Existe una estrategia de migración para hacer lo que describí anteriormente?

Usamos GitLab, con su herramienta GitLab Runner para aprovisionar dinámicamente instancias de EC2 Spot para ejecutar trabajos de CI / CD. GitLab Runner usa Docker Machine para realizar el aprovisionamiento de esta máquina.

Hemos decidido mover todos los servicios de Ubuntu (inflado) a favor de Amazon Linux 2. Para mi deleite, PR # 3609 permitiría esto.

Sin embargo, debido a este "cierre del grifo", el # 3609 parece que va a morir en su lugar. Considere fusionarlo, en su estado actual no conflictivo y fusionable.

Dado que los chicos de Gitlab ya están manteniendo una bifurcación, ¿tal vez podrían estar interesados ​​en hacerse cargo de este repositorio?

@ usha-mandya @ Dawn-Wood ¿alguna actualización sobre docker / docker.github.io # 9239? Como recordatorio, agrega advertencias en todas las páginas de Docker Machine. Esto se fusionó, pero luego se revirtió mientras ocurría la división empresarial para que todos pudieran tomar algunas decisiones sobre el futuro de DM. Sería bueno tener este aviso si DM va a continuar en modo de mantenimiento

AFAIK, la última versión de Docker Desktop ya no incluye docker-machine

AFAIK, la última versión de Docker Desktop ya no incluye docker-machine

Acabo de enterarme de este problema de esa manera, ya que nuestras herramientas internas de la máquina acoplable dejaron de funcionar después de la actualización de la ventana acoplable para escritorio 2.2.0.0

Es un poco irritante que este movimiento tampoco se mencione en la ventana acoplable para las notas de la versión de escritorio.

Utilizamos en gran medida docker-machine para administrar y mantener las máquinas docker compartidas basadas en booot2docker para DEV interno y entornos de ensayo que utilizan el controlador Hyper-V (por lo tanto, aprovisionamos máquinas virtuales boot2docker hyper-v mediante docker-machine). Entonces, aunque tenemos clientes Linux y Mac y, por lo tanto, usamos Docker para Windows / OS X, todavía confiamos en gran medida en Docker-Machine para nuestro material CI / CD.

No tengo conocimiento de ningún reemplazo similar para esta configuración, ¿me estoy perdiendo algo obvio aquí?

Siempre puede descargar el último binario con brew (macOS) y directamente
desde el repositorio. Todavía se mantiene (parches) pero lentamente
eliminado de herramientas como Docker Desktop.
https://github.com/docker/machine/releases

El lunes 27 de enero de 2020 a las 11:47 a.m., sambernet [email protected] escribió:

AFAIK, la última versión de Docker Desktop ya no incluye
docker-machine

AFAIK, la última versión de Docker Desktop ya no incluye
docker-machine

Acabo de enterarme de este problema de esa manera, ya que nuestra máquina acoplable interna
las herramientas dejaron de funcionar después de la actualización de Docker para escritorio 2.2.0.0

Es un poco irritante que este movimiento no se mencione en la ventana acoplable para
notas de la versión de escritorio tampoco.

Utilizamos en gran medida docker-machine para administrar y mantener compartidos
Docker-machines basadas en booot2docker para DEV interno y puesta en escena
entornos que utilizan el controlador Hyper-V (por lo tanto, aprovisionamos boot2docker hyper-v
VM que usan docker-machine). Entonces, aunque tenemos clientes Linux y Mac y
por lo tanto, usamos docker para windows / os x, todavía confiamos en gran medida en docker-machine
para nuestro material de CI / CD.

No tengo conocimiento de ningún reemplazo similar para esta configuración, ¿me falta?
algo obvio aquí?

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/docker/machine/issues/4537?email_source=notifications&email_token=AAGBNX2APIHK6CBNGSAMLDDQ74FYPA5CNFSM4FJ53G3KYY3PNVWWK3TUL52HS4DFVREXG43VMDVBW63 ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAGBNXZV7PCYP3TLWSZ7QODQ74FYPANCNFSM4FJ53G3A
.

También aprendí que la máquina acoplable se eliminó gradualmente por las malas la semana pasada 😒
En docs.docker.com dice que docker-machine está "reemplazado" pero no puedo encontrar ninguna información sobre lo que lo reemplazó. Quiero seguir administrando mis máquinas virtuales locales con ALGO, ¿algún consejo sobre cómo hacerlo de una manera a prueba de futuro?

export DOCKER_HOST = ssh: // user @ host puede funcionar para usted

Quiero seguir administrando mis máquinas virtuales locales con ALGO, ¿algún consejo sobre cómo hacerlo de una manera a prueba de futuro?

¿Puede usar Vagrant para eso quizás? O simplemente podría continuar usando docker-machine ...

Pero tendrías que venir aquí por los binarios, ya que ya no es parte de Docker (Escritorio)

No tengo conocimiento de ningún reemplazo similar para esta configuración, ¿me estoy perdiendo algo obvio aquí?

No hay reemplazo, pero mucha gente está interesada en el uso continuo de machine y libmachine.

Por supuesto que hay _alternativas_ (productos diferentes), pero eso no es realmente lo mismo (que las bifurcaciones).

@afbjorklund Bueno, espero que docker-machine se quede ... y me encantaría obtenerlo directamente desde aquí, pero por alguna razón, las descargas desde github son suuuuuper lentas para mí. Los primeros 10-12 MB pasan en unos pocos segundos (como esperaba con mi línea bastante rápida), luego bajan a 1-2kB / sy falla eventualmente. Sé que esto está un poco fuera de tema, pero estoy seguro de que no es mi línea, ¿github está estrangulando las cosas por alguna razón, tal vez?

Si no es solo algo que le está sucediendo en este momento (solo), entonces probablemente sea mejor hacer ping al Soporte de GitHub al respecto.

Estoy extremadamente confundido acerca de cuál es la forma preferida de implementar simplemente mis contenedores.
La creación de contenedores a través de Docker se promueve como una forma estándar y ampliamente utilizada de crear servicios. Así que eso es lo que solía hacer para hacer contenedores para el sitio web que estoy creando ahora.
Pero, obviamente, necesito implementar estos contenedores en mi VPS. Así que utilizo docker-machine ya que es la única forma documentada, no obsoleta, que conozco de hacer esto. Y ahora me doy cuenta de que está en "modo de mantenimiento", por lo que es posible que no quiera usarlo en un nuevo proyecto, pero ¿qué es infrakit? Hay 2K estrellas, pero me cuesta entender para qué sirve (y puede reemplazar la máquina acoplable de una manera simple) o la documentación oficial y ahora está en modo de solo lectura (archivado), así que siento que ni siquiera debería usarlo. y no hay un enlace en este repositorio Readme / issues a un nuevo repositorio. ¿Por qué no hay documentación y se suspende si reemplaza la máquina acoplable?
Docker parece una solución tan popular, pero no puedo encontrar una sola forma no discontinuada (o en "modo de mantenimiento") para implementar mis contenedores. Si Docker se usa tan ampliamente, ¿cómo pueden los posibles millones de desarrolladores que trabajan con él para implementar su aplicación?

Creo que originalmente, Docker promocionó Docker EE, su versión paga, como una forma oficial de implementar contenedores. Así que rechazaron las iniciativas de Infrakit y de máquinas Docker, ya que amenazaban su modelo de negocio.

Además, los k8 cambiaron por completo el panorama y Docker tuvo problemas para adaptarse.

Ahora que Mirantis adquirió Docker EE, Docker busca otro modelo de negocio. Creo que una nueva dirección es intentar inyectar paquetes de aplicaciones en el ecosistema de k8s y dejar la implementación de k8s en manos de la comunidad. Especialmente porque k8s no es parte de Docker CE (en Linux).

K8s, OTOH es administrado por Google, que tiene todo el incentivo para hacer que la implementación de K8s sea tan complicada que la gente simplemente diría literalmente "Hola, Google, por favor instale el clúster de K8s por mí". Por lo tanto, bloqueando los servicios en la nube de Google

Así que la visión de Solomon Hykes de liberar la nube del encierro y hacer de la nube una mercancía ha fracasado miserablemente.

@NitroBAY Debido a que el "ciclo de vida del software" desde la creación del código hasta las aplicaciones que se ejecutan en los servidores (y eventualmente se actualizan en los servidores) es tan complejo, con un montón de formas diferentes de "generar imágenes de contenedores y descargarlas en los servidores", es difícil de decir cuál debería ser tu solución.

Originalmente, Docker-Machine debía hacer tres cosas:

  1. aprovisionar VM simples en los principales proveedores de nube, o un administrador de VM de la máquina local (VirtualBox, Hyper-V, VMWare, Parallels, etc.)
  2. instalar Docker en esa VM, incluido un certificado autofirmado y abrir el puerto API TCP
  3. easy ssh a ese servidor y controlando docker de forma remota con docker cli (docker-machine env)

(olvidémonos de las funciones heredadas, como crear un enjambre clásico)

Con el primero "crear una máquina virtual de Linux": le recomiendo que lo reemplace con la herramienta de su elección en la nube para la forma en que crean las máquinas virtuales. Si es local y desea algo más rápido que instalar una máquina virtual Linux, consulte multipass , que es mi forma favorita de poner en marcha una nueva máquina virtual Ubuntu en minutos con un solo comando.

Con el segundo "instalar Docker en una VM Linux": puede instalar Docker en cualquier VM moderna utilizando el script de instalación o los documentos oficiales para la distribución de su sistema operativo . La mayoría de las nubes tienen una imagen oficial con la ventana acoplable, como opción.

Docker nunca pudo resolver todos sus problemas de CI / CD, y docker-machine es en realidad solo una herramienta de instalación básica y aprovisionamiento de VM, por lo que muchas personas necesitaban una solución más flexible y fácil de mantener (por ejemplo, docker-machine no comparte fácilmente configuraciones de servidor entre máquinas). El equipo de Docker nunca tuvo la intención de que la máquina herramienta resolviera todos esos problemas. Todavía funciona hoy para esas cosas originales, así que siéntase libre de usarlo siempre que funcione para usted. Todavía lo uso mensualmente y lo he hecho desde 2015.

Tal vez si detallaste un problema específico que resolvió la máquina acoplable, podríamos recomendar alternativas específicas que podrías implementar.

Por ejemplo, con respecto al n. ° 3 anterior "controlar la ventana acoplable de forma remota" , siempre me gustó que la máquina acoplable proporcionara un certificado autofirmado para la autenticación de API y me permitiera cambiar mi entorno de la ventana acoplable localmente para poder controlar el servidor remoto. Ese método heredado ha sido reemplazado por el demostración rápida aquí usando el método env DOCKER_HOST , y tuvimos una demostración en mi show en vivo el verano pasado de la nueva función de contexto , que le permite almacenar una lista de servidores de la ventana acoplable directamente en la CLI de la ventana acoplable y usar SSH o TCP para controlarlos de forma remota.

Además, InfraKit es una herramienta para constructores de sistemas (personas que crean sistemas operativos Linux personalizados), no para usuarios de Linux como nosotros que desean una distribución de Linux normal creada con nuestro proveedor de alojamiento e instalar la ventana acoplable en ella.

Wow @BretFisher, muchas gracias por tu respuesta tan detallada. Estoy seguro de que también será considerado un regalo de oro por las personas del futuro que te leerán.
Para el registro, terminé creando un script cargando mi config.json en la máquina remota (para que pudiera descargar mi imagen privada) y el archivo de redacción. Y luego ejecutando "Docker stack deploy"
Mi despliegue sh se ve así

#!/bin/bash
ssh -o StrictHostKeyChecking=no -l root "$HOST" root@$HOST "mkdir /opt/app; mkdir /root/.docker"
source ./devops/generate-branch-hostname.sh
scp ./devops/docker-compose-prod.yml root@$HOST:/opt/app/docker-compose-prod.yml
scp $HOME/.docker/config.json root@$HOST:/root/.docker/config.json
echo "BRANCH_HOSTNAME=$BRANCH_HOSTNAME"
ssh root@$HOST "export BRANCH_HOSTNAME=$BRANCH_HOSTNAME; docker stack deploy --compose-file /opt/app/docker-compose-prod.yml webapp --with-registry-auth"

(BRANCH_HOSTNAME no es necesario obviamente, simplemente tengo diferentes subdominios basados ​​en la rama de Git que activan mi script (yo uso CI / CD))
Y sigo usando docker-machine create para tener docker en mi VPS remoto de ubuntu.

De todos modos, la máquina Docker NO es una buena idea en CI / CD porque compartir el certificado no es fácil (es una carpeta completa) y la regeneración del certificado puede detener Docker, por lo que tampoco es una opción.

Sigo creyendo que debería existir una herramienta (hecha por la comunidad o por Docker) que aprovisione DOCKER_HOST, etc. y simplemente use la clave SSH. Sería más fácil que "scp" y "ssh".

La máquina Docker resultó no ser inevitable.

No soy un profesional, solo soy alguien que aprendió en mi propia programación web y que está trabajando a mi lado en un gran proyecto, por lo que no creo que K8 se adapte a mis necesidades, ya que se describe como una herramienta no fácil. solo para al menos equipos profesionales medianos / grandes y realmente no para una persona que tiene poco tiempo y hace tanto el desarrollo (front / back end) como la implementación. Así que supuse que todavía había un lugar para Docker pero, tal vez debido a la falta de problemas de fuga del que he oído hablar, las cosas deberían ser más claras sobre la forma oficial preferida de implementar aplicaciones y sus planes para el sucesor de la máquina docker no tengo un plan sobre eso.

Sigo creyendo que debería existir una herramienta (hecha por la comunidad o por Docker) que aprovisione DOCKER_HOST, etc. y simplemente use la clave SSH. Sería más fácil que "scp" y "ssh".

Solo haz export DOCKER_HOST=ssh://[email protected]

Tenga en cuenta que si tiene el inicio de sesión ssh deshabilitado para root usuario, puede usar un usuario no root user través de
export DOCKER_HOST=ssh://[email protected] después de agregar user al grupo docker usando sudo usermod -aG docker user . (probado en Ubuntu 18.04)

¿Alguna alternativa para jugar con Docker Swarm de múltiples nodos en Windows? El tutorial de enjambre indica que actualmente esto no es posible en Windows sin Docker Machine:

Actualmente, no puede usar Docker Desktop para Mac o Docker Desktop para Windows solo para probar un enjambre de múltiples nodos. Sin embargo, puede usar la versión incluida de Docker Machine para crear los nodos de enjambre (consulte Introducción a Docker Machine y una máquina virtual local), luego siga el tutorial para todas las funciones de múltiples nodos.

Utilizo https://multipass.run/ para crear rápidamente múltiples máquinas virtuales de Ubuntu. Tan rápido como una máquina acoplable. Vea una demostración de cómo lo uso para un Swarm de 3 nodos: https://www.pscp.tv/BretFisher/1mrGmQvNEWBGy?t=

Su uso de escritorio ha sido reemplazado principalmente por nuestro producto Docker Desktop.

Nota para todos en este hilo: Docker Desktop no es un software gratuito, no es de código abierto y tiene una tonelada de software espía incrustado, por lo que es posible que desee pensar dos veces antes de seguir esa ruta de actualización.

En caso de que esto pueda ser útil para alguien, aquí hay un script para instalar Docker en un host remoto (probado en Debian 10 = buster):
https://github.com/minireference/sample-book/blob/master/fabfile.py#L213 -L252

Se basa en el marco de automatización del servidor llamado Fabric (específicamente github y documentos fab-classic). Incluso si no desea usar Fabric, puede leer fácilmente los comandos y ejecutarlos manualmente para convertirlos en un script bash, ya que no es nada sofisticado.

Después de eso, ejecute export DOCKER_HOST=ssh://[email protected] y volverá a ser como estaban las cosas cuando usaba la máquina acoplable.

Nota para todos en este hilo: Docker Desktop no es un software gratuito, no es de código abierto y tiene una tonelada de software espía incrustado, por lo que es posible que desee pensar dos veces antes de seguir esa ruta de actualización.

@sneak "tonelada de software espía" ¿te refieres a la configuración de Preferencias "enviar estadísticas de uso" que dice "Enviar informes de error, versión del sistema e idioma, así como información del ciclo de vida de Docker Desktop (por ejemplo, inicios, paradas, reinicios)", que se puede apagar?

No estoy interesado en dedicar más tiempo a discutir más sobre el software espía propietario de código cerrado.

troll de baja calidad

Trolling requiere subterfugios. Soy sincero y mis declaraciones son precisas:

  • Docker Desktop es propietario

  • Docker Desktop es un software de código cerrado

  • docker desktop espía a sus usuarios sin obtener el consentimiento para hacerlo (al igual que la máquina docker)

A partir de estos puntos anteriores, una persona razonable podría concluir que Docker-the-company no se preocupa por las libertades del software, la privacidad del usuario o el consentimiento del usuario a la vigilancia.

Estoy en GitHub y otros sitios similares para trabajar en software libre y de código abierto, y los proyectos que no son libres como Docker Desktop son simplemente una distracción del trabajo en software libre que beneficia a todos; No tengo ningún deseo de desviar mi tiempo o atención a tales cosas.

Le convendría abordar los problemas directamente en lugar de recurrir a ataques personales. Silenciando este hilo ahora, que tengas un buen día.

En caso de que esto pueda ser útil para alguien, aquí hay un script para instalar Docker en un host remoto (probado en Debian 10 = buster):
https://github.com/minireference/sample-book/blob/master/fabfile.py#L213 -L252

Se basa en el marco de automatización del servidor llamado Fabric (específicamente github y documentos fab-classic). Incluso si no desea usar Fabric, puede leer fácilmente los comandos y ejecutarlos manualmente para convertirlos en un script bash, ya que no es nada sofisticado.

Después de eso, ejecute export DOCKER_HOST=ssh://[email protected] y volverá a ser como estaban las cosas cuando usaba la máquina acoplable.

@ivanistheone NO, no lo es. docker-machine es (¿fue?) Genial porque también implementa todas las API en varios proveedores de la nube para crear máquinas en la CLI de manera uniforme. Por supuesto, hay gcloud , az , etc. pero cada uno de ellos tiene diferentes opciones y semánticas. docker-machine es una CLI para todos ellos. Hace que trabajar con nubes híbridas sea un poco más fácil ...

¿Fue útil esta página
0 / 5 - 0 calificaciones