Cómo actualizar a Docker Compose v2

Después de casi un año en versión beta, Docker Compose v2 está generalmente disponible como versión estable de la herramienta de administración de contenedores. La mayoría de los usuarios deberían poder hacer el cambio hoy. En esta guía, le mostraremos cómo preparar y aplicar su actualización.

Índice de contenidos
  1. ¿Qué hay de nuevo en v2?
  2. Incompatibilidades con v1
  3. Actualización en Linux
  4. Actualización con Docker Desktop para Windows y Mac
  5. ¿Que sigue?
  6. Resumen

¿Qué hay de nuevo en v2?

Docker Compose v2 trae la funcionalidad familiar de Compose al estándar docker CLI. En lugar de interactuar con un separado docker-compose binario, ahora usas docker compose. Compose está integrado en Docker.

Puede reemplazar comandos como este:

$ docker-compose up -d

Con la siguiente invocación:

$ docker compose up -d

Compose v2 también viene con algunas características nuevas que mejoran la experiencia del usuario:

  • Puedes usar docker compose cp para copiar archivos entre su host y los contenedores.
  • Los proveedores de la nube son objetivos válidos, lo que le permite docker compose up para implementar contenedores en Amazon ECS o Microsoft ACI.
  • Los perfiles de servicio son totalmente compatibles, lo que facilita la inclusión selectiva de contenedores en una pila.
  • Gestión de proyectos más optimizada: ejecute comandos sin estar en el mismo directorio que su docker-compose.yml archivo con docker compose --project-name my-project stop . También hay un nuevo docker compose ls comando que enumera todos sus proyectos de Compose.
  • Docker Compose ahora está escrito en Go, como el mismo Docker, en lugar de ser una utilidad de Python separada. Esto permite que Compose reutilice el código de la CLI principal de Docker, creando un comportamiento más consistente.

Incompatibilidades con v1

Compose v2 es compatible con v1 en casi todos los casos de uso. No necesita modificar su docker-compose.yml archivos o aprender nuevos comandos, excepto por el cambio de docker-compose a docker compose. Si tiene sus propias herramientas alrededor del docker-compose comando, puede cambiarlo para llamar docker compose en cambio.

Si bien la mayoría de las migraciones deberían ser sencillas, Compose v2 introduce algunos cambios importantes que podrían afectar casos de uso específicos:

  • Los contenedores ahora se crean con guiones en sus nombres en lugar de guiones bajos. Esto significa un servicio llamado db dentro de app proyecto ahora creará un contenedor llamado app-dben vez de app_db. Esto podría interrumpir los scripts que esperan que se utilice el formato de nombre de contenedor anterior. El cambio se puede desactivar actualmente al incluir el --compatibility bandera con docker compose comandos
  • docker compose build compila con BuildKit de forma predeterminada. BuildKit es el moderno sistema de compilación de imágenes de Docker que es capaz de compilaciones mucho más rápidas. BuildKit es el sistema de compilación recomendado, pero tiene algunas incompatibilidades restantes con el mecanismo de compilación heredado que podría causar problemas en algunas circunstancias. Puede deshabilitar BuildKit configurando el DOCKER_BUILDKIT=0 variable de entorno antes de ejecutar docker compose comandos
  • Se han eliminado algunos indicadores de comando en desuso. docker compose rm --all no es compatible y el docker compose scale se omite el comando en favor de docker compose up --scale. Tendrá que modificar cualquier secuencia de comandos que se base en el docker-compose versiones de estos comandos.

Actualización en Linux

Aunque Compose ahora se integra con la CLI de Docker, no está habilitado de forma predeterminada en Docker Engine. Puede instalar Compose v2 agregándolo como complemento de la CLI de Docker. Debe tener Docker versión v20.10.13 o posterior.

Actualice sus repositorios de paquetes e instale docker-compose-plugin:

$ sudo apt update
$ sudo apt install docker-compose-plugin

Verifique que la instalación se haya realizado correctamente recuperando la versión de Docker Compose:

$ docker compose version
Docker Compose version v2.3.3

Ahora puede eliminar Docker Compose v1, a menos que desee conservarlo para brindar compatibilidad con scripts heredados. Ambas cosas docker-compose (v1) y docker compose (v2) pueden coexistir si los necesita. Si está eliminando v1, normalmente se encuentra como un solo binario en /usr/local/bin/docker-compose:

$ sudo rm /usr/local/bin/docker-compose

Ahora puede configurar un alias de shell para redirigir docker-compose a docker compose. Esto le permitiría seguir usando scripts que esperan Compose v1, usando su nueva instalación v2.

$ echo 'alias docker-compose="docker compose"' >> ~/.bashrc
$ source ~/.bashrc
$ docker-compose version
Docker Compose version v2.3.3

Ahora está listo para comenzar a administrar sus contenedores con Compose v2.

Actualización con Docker Desktop para Windows y Mac

Compose v2 se incluye con las versiones 3.4 y posteriores de Docker Desktop. v2 se convirtió en la versión predeterminada de Compose en v4.4.2; si ya tomó la actualización, puede usar docker compose Este Dia.

imagen de la administración de Docker Compose v2 en la configuración de Docker Desktop

v4.4.2 también alias docker-compose a docker compose automáticamente. Compose v1 es inaccesible de forma predeterminada. Puede deshabilitar este alias ejecutando el docker-compose disable-v2 comando o desactivando la casilla de verificación "Usar Docker Compose v2" en la página de configuración de Docker Desktop. los docker-compose El comando volverá a usar Compose v1.

¿Que sigue?

Compose v1 sigue siendo compatible con problemas de seguridad de "gravedad alta" y correcciones de errores durante los próximos seis meses. Este soporte finalizará en octubre de 2022. v1 se considerará al final de su vida útil, por lo que se debe evitar su uso. En este punto, Docker Desktop se actualizará a solamente apoyo v2. tendrás que usar docker compose como el docker-compose se eliminará el alias. Deberá permanecer en una versión anterior si aún necesita v1.

Puede seguir usando v1 indefinidamente instalándolo como un binario independiente. Puede encontrarlos publicados para Windows, Mac y Linux en la página de lanzamientos de GitHub del proyecto. Si bien estos archivos binarios seguirán funcionando indefinidamente, la mayoría de los proyectos deberían apuntar a pasar a v2 en un futuro cercano. Esto le dará acceso a todas las correcciones de errores, actualizaciones de seguridad y nuevas funciones en las versiones modernas de Compose v2.

Resumen

Docker Compose v2 es ahora la versión estable de Docker Compose. Los usuarios de Docker Desktop se habrán actualizado automáticamente. Las instalaciones de Linux de Docker Engine son atendidas por el nuevo docker-compose-plugin Complemento CLI.

El soporte para Compose v1 finaliza en menos de seis meses, por lo que debe verificar que sus scripts sean compatibles y luego adoptar v2 en las próximas semanas. Podrás usar Redactar dentro de la docker CLI y benefíciese de las funciones v2, como los perfiles de servicio y la docker compose ls dominio.

Descubre más contenido

Subir Change privacy settings