Назад | Перейти на главную страницу

Создание образа Docker с rhel7-atomic в Windows 10

Моя хост-система - это Windows 10, и я хотел бы создать образ Docker на основе rhel7-atomic.

Dockerfile:
FROM registry.access.redhat.com/rhel7-atomic
RUN microdnf --enablerepo=rhel-7-server-rpms \
install java-1.8.0-openjdk-headless --nodocs ;\
microdnf clean all

Источник: Представляем базовый образ Red Hat Enterprise Linux Atomic

Вывод:

 $ docker build --force-rm=true --no-cache=true -t=rhel .
 Sending build context to Docker daemon  5.632kB Step 1/2 : FROM
 registry.access.redhat.com/rhel7-atomic  ---> 4364d4c393ff Step 2/2 :
 RUN microdnf --enablerepo=rhel-7-server-rpms                 install
 java-1.8.0-openjdk-headless --nodocs ;microdnf clean all  ---> Running
 in 87b753f6bded

 (process:6): librhsm-WARNING **: 07:20:18.402: Found 0 entitlement
 certificates

 (process:6): librhsm-WARNING **: 07:20:18.404: Found 0 entitlement
 certificates error: (--enablerepo) repo rhel-7-server-rpms not found

 (process:8): librhsm-WARNING **: 07:20:18.433: Found 0 entitlement
 certificates

 (process:8): librhsm-WARNING **: 07:20:18.435: Found 0 entitlement
 certificates Complete. Removing intermediate container 87b753f6bded 
 ---> 77d1aebf6942 Successfully built 77d1aebf6942 Successfully tagged rhel:latest

Я тоже пробовал с yum, но получаю ту же ошибку.

Проблема в том, что мне нужна подписка для моего хоста. Я зарегистрировался на сайте developers.redhat.com, но я не могу запустить subscription-manager в файле dockerfile, потому что команда не может быть найдена. Я нашел здесь еще один вопрос, в котором говорится, что хост-компьютер должен иметь подписку: Подписка на базовый образ Rhel7 atomic docker

Таким образом, кажется, что единственный способ зарегистрировать мой хост и присоединить действительную подписку - это загрузить официальный ISO-образ rhel и запустить его на виртуальной машине, подписать эту хост-систему внутри виртуальной машины на redhat и создать там мой образ докера.

Что мне не нравится в этом способе, так это то, что мне приходится загружать образ rhel размером 7 ГБ и запускать виртуальную машину только из-за отсутствия подписки.

Это верно? Или есть другой способ, который мне не хватает?

Было бы лучше использовать CentOS или Fedora в качестве базовых образов для сборки докеров?

Или проблема не в подписках, а в установке докера на Windows 10: https://access.redhat.com/discussions/3219221

Проблема в том, что Docker в Windows 10 не знает секретного соуса Red Hat, и хост не предлагает подписку для наследования контейнера. Чтобы это заработало, вам нужно запустить сборку на хосте с подпиской, используя пакет docker из репозиториев Red Hat yum.

Я бы порекомендовал CentOS начать с предположения, что вам понадобится совместимость с Red Hat в будущем. то есть, возможно, это POC, который необходимо запускать на образах / хостах RHEL в процессе производства.