Docker стал неотъемлемой частью современной разработки и развёртывания приложений. Однако в некоторых случаях требуется понизить версию Docker или Docker Compose для обеспечения совместимости с определёнными проектами или инфраструктурой. В этой статье мы подробно рассмотрим, как выполнить даунгрейд Docker и Docker Compose на Ubuntu 22.04, чтобы гарантировать стабильную работу ваших приложений.
Удаление текущей версии Docker
Перед установкой более старой версии Docker необходимо полностью удалить текущую версию, чтобы избежать конфликтов.
1. Остановите все запущенные контейнеры:
docker ps -q
docker stop <id>
Это гарантирует, что ни один контейнер не будет работать во время процесса удаления.
На данный момент версия Docker:
2. Удалите существующие пакеты Docker:
sudo apt remove -y docker docker.io containerd runc
3. Очистите систему от остаточных файлов и настроек:
sudo apt purge -y docker-ce docker-ce-cli containerd.io
4. Удалите все данные Docker (по желанию):
Если вы хотите полностью очистить систему от Docker, удалите его директории с данными. Учтите, что это приведёт к удалению всех ваших контейнеров, образов и томов.
sudo rm -rf /var/lib/docker /var/lib/containerd
Добавление официального репозитория Docker
Для установки конкретной версии Docker необходимо добавить его официальный репозиторий.
1. Установите необходимые пакеты для работы с репозиториями по HTTPS:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
2. Добавьте GPG-ключ Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. Добавьте Docker в источники APT:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Установка нужной версии Docker
1. Обновите список пакетов:
sudo apt update
2. Посмотрите доступные версии Docker:
apt-cache madison docker-ce
Вы получите список доступных версий. Пример вывода:
docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
3. Установите конкретную версию Docker:
Замените <VERSION> на нужную версию из списка. Например:
sudo apt install -y docker-ce=5:20.10.17~3-0~ubuntu-jammy docker-ce-cli=5:20.10.17~3-0~ubuntu-jammy containerd.io
4. Проверьте установленную версию Docker:
docker --version
Вы должны увидеть версию, которую вы установили.
Установка нужной версии Docker Compose
Для управления многоконтейнерными приложениями может потребоваться конкретная версия Docker Compose.
1. Удалите текущую версию Docker Compose (если она установлена):
rm /usr/local/bin/docker-compose
или
apt remove docker-compose
2. Скачайте нужную версию Docker Compose:
Используя предоставленную команду, установим версию v2.11.1:
curl -SL https://github.com/docker/compose/releases/download/v2.11.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
3. Сделайте файл исполняемым:
chmod +x /usr/local/bin/docker-compose
4. Проверьте установленную версию Docker Compose:
docker-compose --version
Вывод должен быть следующим:
Docker Compose version v2.11.1
Фиксация версий пакетов (рекомендуется)
Чтобы предотвратить автоматическое обновление Docker и Docker Compose при обновлении системы, зафиксируйте их версии.
1. Зафиксируйте версии пакетов Docker:
apt-mark hold docker-ce docker-ce-cli containerd.io
2. Снять фиксацию (если потребуется обновление в будущем):
apt-mark unhold docker-ce docker-ce-cli containerd.io
Рекомендации:
- Тестирование: Всегда тестируйте изменения в тестовой среде перед внедрением в продуктивную.
- Резервное копирование: Создайте резервные копии важных данных и настроек перед началом процесса.
- Обновления безопасности: Убедитесь, что выбранная вами версия Docker не содержит известных уязвимостей.
Заключение
Даунгрейд Docker и Docker Compose на Ubuntu 22.04 — задача, требующая внимательности и понимания процессов управления пакетами. Выполнив указанные шаги, вы сможете установить необходимые версии инструментов для обеспечения совместимости с вашими приложениями и инфраструктурой.