Назад к вопросам
Junior
67
questionbank

Как собрать образ и запушить его в реестр?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Сборка образа Docker выполняется командой docker build, которая использует Dockerfile как инструкцию. Dockerfile содержит шаги по созданию образа, такие как базовый образ, копирование файлов, установка зависимостей и настройка среды.

Пример Dockerfile:

# Используем базовый образ
FROM ubuntu:latest

# Устанавливаем зависимости
RUN apt-get update && apt-get install -y nginx

# Копируем файлы конфигурации
COPY nginx.conf /etc/nginx/nginx.conf

# Открываем порт
EXPOSE 80

# Запускаем веб-сервер
CMD ["nginx", "-g", "daemon off;"]

Команда сборки:

# docker build -t <имя_образа>:<тег> <путь_к_Dockerfile>
docker build -t my-nginx-image:latest .

-t my-nginx-image:latest присваивает образу имя my-nginx-image с тегом latest. . указывает на текущую директорию, где находится Dockerfile.

После успешной сборки образ будет доступен локально. Чтобы сохранить его в реестре (например, Docker Hub или приватный реестр), необходимо сначала авторизоваться в реестре командой docker login.

# docker login <адрес_реестра>
# Для Docker Hub адрес не указывается
docker login

Затем образ необходимо перетегировать, чтобы он соответствовал адресу реестра.

# docker tag <имя_локального_образа>:<тег> <адрес_реестра>/<имя_репозитория>:<тег>
# Для Docker Hub, если пользователь 'myuser'
docker tag my-nginx-image:latest myuser/my-nginx-image:latest

И, наконец, запушить образ в реестр:

# docker push <адрес_реестра>/<имя_репозитория>:<тег>
# Для Docker Hub
docker push myuser/my-nginx-image:latest

Процесс сборки и пуша часто автоматизируется с помощью CI/CD систем (Jenkins, GitLab CI, GitHub Actions и т.д.).