Jak uaktualnić do Docker Compose v2
Po prawie roku w wersji beta Docker Compose v2 jest ogólnie dostępny jako stabilna wersja narzędzia do zarządzania kontenerami. Większość użytkowników powinna być w stanie dokonać zmiany już dziś. W tym przewodniku pokażemy, jak przygotować i zastosować uaktualnienie.
streszczenie
Co nowego w wersji 2?
Docker Compose v2 wprowadza znajome funkcje tworzenia do codziennego życia docker
CLI. Zamiast wchodzić w interakcje z innym docker-compose
plik binarny, którego teraz używasz docker compose
. Compose jest zintegrowane z Dockerem.
Możesz zastąpić polecenia w ten sposób:
$ tworzenie dokerów -d
Z następującą inwokacją:
$ tworzenie dokera -d
Compose v2 zawiera również kilka nowych funkcji, które poprawiają wrażenia użytkownika:
- Możesz użyć
docker compose cp
do kopiowania plików między hostem a kontenerami. - Dostawcy chmury są prawidłowymi celami, co pozwala
docker compose up
do wdrażania kontenerów na Amazon ECS lub Microsoft ACI. - Profile usług są w pełni obsługiwane, co ułatwia selektywne umieszczanie kontenerów w stosie.
- Uproszczone zarządzanie projektami: wykonuj polecenia bez przebywania w tym samym katalogu co twój
docker-compose.yml
folder zdocker compose --project-name my-project stop
. Jest też nowydocker compose ls
polecenie, które wyświetla wszystkie twoje projekty Compose. - Docker Compose jest teraz napisany w Go, podobnie jak sam Docker, zamiast być oddzielnym narzędziem Pythona. Dzięki temu Compose może ponownie użyć podstawowego kodu wiersza polecenia platformy Docker, tworząc bardziej spójne zachowanie.
Niezgodności z v1
Compose v2 jest kompatybilny z v1 w prawie wszystkich przypadkach użycia. Nie musisz modyfikować swojego docker-compose.yml
pliki lub nauczyć się nowych poleceń, z wyjątkiem zmiany docker-compose
à docker compose
. Jeśli masz własne narzędzia w okolicy docker-compose
polecenie, możesz je zmienić na wywołanie docker compose
W zamian.
Chociaż większość migracji powinna być prosta, Compose v2 wprowadza kilka przełomowych zmian, które mogą mieć wpływ na konkretne przypadki użycia:
- Kontenery są teraz tworzone z myślnikami w nazwach zamiast podkreśleń. Oznacza usługę o nazwie
db
w ciąguapp
projekt utworzy teraz kontener o nazwieapp-db
zamiastapp_db
. Może to spowodować uszkodzenie skryptów, które oczekują użycia starego formatu nazwy kontenera. Zmianę można obecnie wyłączyć, dołączając--compatibility
flaga zdocker compose
Zamówienia. docker compose build
zbudowany z BuildKit domyślnie. BuildKit to nowoczesny system obrazowania firmy Docker, zdolny do tworzenia kompilacji znacznie szybciej. Zalecanym systemem kompilacji jest BuildKit, ale nadal istnieją pewne niezgodności ze starszym mechanizmem kompilacji, które w pewnych okolicznościach mogą powodować problemy. Możesz wyłączyć BuildKit, ustawiającDOCKER_BUILDKIT=0
zmienna środowiskowa przed uruchomieniemdocker compose
Zamówienia.- Usunięto niektóre przestarzałe flagi poleceń.
docker compose rm --all
nie jest obsługiwany, adocker compose scale
polecenie jest pomijane na korzyśćdocker compose up --scale
. Będziesz musiał zmodyfikować wszystkie skrypty, które opierają się nadocker-compose
wersje tych poleceń.
Aktualizacja w systemie Linux
Chociaż funkcja Compose jest teraz zintegrowana z interfejsem wiersza polecenia platformy Docker, nie jest domyślnie włączona w silniku platformy Docker. Możesz zainstalować Compose v2, dodając go jako wtyczkę Docker CLI. Musisz mieć Docker w wersji 20.10.13 lub nowszej.
Zaktualizuj repozytoria pakietów i zainstaluj docker-compose-plugin
:
$ sudo apt update $ sudo apt install docker-compose-plugin
Sprawdź, czy instalacja się powiodła, pobierając wersję Docker Compose:
$ docker Compose wersja Docker Compose wersja v2.3.3
Możesz teraz usunąć Docker Compose v1, chyba że chcesz zachować zgodność ze starszymi skryptami. Obie docker-compose
(v1) i docker compose
(v2) mogą współistnieć, jeśli ich potrzebujesz. Jeśli usuniesz v1, zwykle jest on widoczny jako pojedynczy plik binarny /usr/local/bin/docker-compose
:
$ sudo rm /usr/local/bin/docker-compose
Możesz teraz skonfigurować alias powłoki do przekierowania docker-compose
à docker compose
. Umożliwi to dalsze korzystanie ze skryptów, które oczekują Compose v1, przy użyciu nowej instalacji v2.
$ echo 'alias docker-compose="docker compose"' >> ~/.bashrc $ source ~/.bashrc $ wersja docker-compose Docker Compose wersja v2.3.3
Możesz teraz rozpocząć zarządzanie kontenerami za pomocą Compose v2.
Uaktualnij do Docker Desktop dla Windows i Mac
Compose v2 jest dołączona do platformy Docker Desktop w wersji 3.4 i nowszych. v2 stała się domyślną wersją Compose w wersji 4.4.2; jeśli masz już uaktualnienie, możesz użyć docker compose
dzisiaj
v4.4.2 również aliasy docker-compose
à docker compose
automatycznie. Opcja Compose v1 jest domyślnie niedostępna. Możesz wyłączyć ten alias, uruchamiając docker-compose disable-v2
polecenie lub odznaczając pole wyboru „Użyj Docker Compose v2” na stronie ustawień pulpitu Docker. The docker-compose
Sterowanie powróci do korzystania z funkcji Compose v1.
A potem?
Compose v1 pozostaje obsługiwany w przypadku problemów z bezpieczeństwem i poprawek błędów o „wysokiej ważności” przez następne sześć miesięcy. To wsparcie zakończy się w październiku 2022 r. v1 będzie wówczas uważane za koniec życia, więc należy unikać jego używania. W tym momencie Docker Desktop zostanie zaktualizowany do seulement wsparcie v2. Będziesz musiał użyć docker compose
jak docker-compose
aliasing zostanie usunięty. Będziesz musiał pozostać na starszej wersji, jeśli nadal potrzebujesz v1.
Możesz nadal korzystać z wersji 1 w nieskończoność, instalując ją jako samodzielny plik binarny. Można je znaleźć wydane dla systemów Windows, Mac i Linux na stronie wydań GitHub projektu. Chociaż te pliki binarne będą nadal działać w nieskończoność, większość projektów powinna mieć na celu aktualizację do wersji v2 w najbliższej przyszłości. Dzięki temu uzyskasz dostęp do wszystkich poprawek błędów, aktualizacji zabezpieczeń i nowych funkcji w nowoczesnych wersjach Compose v2.
streszczenie
Docker Compose v2 jest teraz stabilną wersją Docker Compose. Użytkownicy platformy Docker Desktop zostaną automatycznie uaktualnieni. Instalacje Docker Engine w systemie Linux są obsługiwane przez nowy docker-compose-plugin
Wtyczka CLI.
Wsparcie dla Compose v1 kończy się za mniej niż sześć miesięcy. Dlatego musisz sprawdzić, czy Twoje skrypty są kompatybilne, a następnie zaadoptować v2 w nadchodzących tygodniach. Będziesz mógł korzystać z komponowania w docker
CLI i korzystaj z funkcji v2, takich jak profile usług i docker compose ls
zamówiony.