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.
¿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 condocker compose --project-name my-project stop
. También hay un nuevodocker 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 deapp
proyecto ahora creará un contenedor llamadoapp-db
en vez deapp_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 condocker 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 elDOCKER_BUILDKIT=0
variable de entorno antes de ejecutardocker compose
comandos- Se han eliminado algunos indicadores de comando en desuso.
docker compose rm --all
no es compatible y eldocker compose scale
se omite el comando en favor dedocker compose up --scale
. Tendrá que modificar cualquier secuencia de comandos que se base en eldocker-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.
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