Когда uname сообщает aarch64 вместо arm64v8, будет ли docker-ce по-прежнему загружать образы arm64v8?

Вопрос или проблема

docker-ce теперь поддерживает базовые образы для нескольких архитектур, но ищет тег arm64v8 вместо aarch64 (который помечен как устаревший).

К сожалению, моя новая хост-операционная система Ubuntu 18.04 сообщает aarch64.
Linux nas 4.4.154-1122-rockchip-ayufan-g7859b9b904a9 #1 SMP Mon Oct 1 07:32:42 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

Так что

  1. Можно ли вручную добавить/изменить архитектурный тег на уже работающем хосте?
    или
  2. Будет ли docker-ce загружать образ arm64v8, даже если хост-ОС сообщает aarch64?

Я думаю, что это нормально. Я не тестировал на Ubuntu 18.04, но на последнем Debian все работает хорошо на моем Pine64:

root@pine64:~# uname -a
Linux pine64 3.10.107-pine64 #7 SMP PREEMPT Thu Jan 25 08:00:55 CET 2018 aarch64 GNU/Linux
root@pine64:~# docker info | grep arch
Architecture: aarch64

Я загружал много образов arm64v8 без каких-либо проблем.

Я не думаю, что docker использует uname для чего-либо. Я думаю, что стандартная архитектура — это свойство установочного пакета. Это тот пакет, который вы получаете, когда устанавливаете с помощью apt-get.

Это устраняет любые несоответствия в наименовании между Ubuntu и docker.

Поскольку собственное наименование docker немного непоследовательно.

Если вы хотите изменить стандартное значение… Если вы добавите переменную окружения DOCKER_DEFAULT_PLATFORM в свой профиль, вы сможете изменить стандартную платформу. https://docs.docker.com/engine/reference/commandline/cli/

Ответ или решение

Вопрос, который вы подняли, касается совместимости между архитектурами, используемыми в Docker, и тем, как система операционная система интерпретирует архитектуру вашего хоста. Рассмотрим два основных аспекта:

1. Поддержка архитектуры в Docker

Docker поддерживает несколько архитектур, включая arm64v8 (также известную как AArch64). Судя по вашему описанию, ваша операционная система Ubuntu 18.04 отображает архитектуру как aarch64, что, однако, не препятствует Docker в правильной работе с образами arm64v8.

Дело в том, что Docker не полагается исключительно на вывод команды uname для определения архитектуры. Вместо этого настройки архитектуры, которые Docker использует, зависят от конфигурации системы и установленных пакетов. Ваша система может сообщить о том, что она aarch64, но Docker может успешно работать с образами, помеченными как arm64v8.

2. Управление архитектурной настройкой Docker

Если вы хотите установить или поменять используемую архитектуру в Docker, вы можете сделать это, добавив переменную среды DOCKER_DEFAULT_PLATFORM в вашу среду. Это позволит вам явно указать платформу, которую вы хотите использовать, например:

export DOCKER_DEFAULT_PLATFORM=linux/arm64/v8

Такой подход поможет избежать любой путаницы между терминами aarch64 и arm64v8 и обеспечит корректную работу с образами.

Заключение

Таким образом, по вашему вопросу:

  1. Можно ли вручную изменить архитектуру на уже работающем хосте? – Нет, прямого способа изменить архитектурный тег, отображаемый системой, нет, но можно управлять тем, как Docker будет использовать образы, используя переменную среды DOCKER_DEFAULT_PLATFORM.
  2. Будет ли Docker тянуть образы arm64v8, если операционная система сообщает о aarch64? – Да, Docker будет по-прежнему загружать образы arm64v8, так как он не полагается исключительно на вывод команды uname.

Для лучшего понимания работы с архитектурами в Docker стоит ознакомиться с документацией Docker и актуальными сообществами, которые занимаются вопросами совместимости и настройки.

Оцените материал
Добавить комментарий

Капча загружается...