Docker · 6 min read · Nov 24, 2025
Docker Часть 4: создание и публикация пользовательских образов Docker
В первой и второй частях мы рассмотрели основы работы с контейнерами, подготовив нашу систему для управления контейнерами Docker и что именно означает использование контейнера Docker по сравнению с другими технологиями виртуализации с технической точки зрения. Затем, в третьей части, мы на практике поработали с образами Docker, изучили основы и создали наш первый контейнер Notepad, используя либо WordPress, либо DokuWiki.
В этой четвертой части мы увидим, как создаются образы Docker, и создадим наш собственный пользовательский образ, готовый к загрузке и обмену с нашими друзьями, коллегами и сообществами.
Для этого урока мы будем использовать образ Whale Docker. Whale — это официальный талисман Docker, и образ Whale Docker напоминает программу cowsay, которая генерирует ASCII-изображения коровы в терминале с сообщением. Он также может генерировать изображения, используя заранее подготовленные изображения других животных, таких как Пингвин Тукс и талисман Linux.
Введение в Docker файлы
В предыдущей части мы познакомились с Docker Hub и узнали, что это облачный централизованный ресурс для поиска образов контейнеров, создания образов и распространения этих образов. Мы также узнали, что образ Docker — это многослойный образ на основе базового образа. Это означает, что использование базового образа избавляет от необходимости создавать с нуля подходящую ОС для образа Docker и дает нам возможность настраивать верхние слои, где будет находиться наше программное обеспечение.
Чтобы создать пользовательский образ, используя базовый образ, нам нужно предоставить движку Docker инструкции о том, как установить и настроить пакеты и файлы, а также некоторые настройки, которые с этим связаны. Эти инструкции записываются в текстовом файле, называемом “dockerfile”. Dockerfiles похожи на рецепты, которые вы передаете повару, и он/она готовит вам отличное блюдо. Эти Docker файлы написаны с использованием простого, описательного набора шагов, которые называются “инструкциями”. Каждая инструкция создает новый слой в нашем образе. Инструкции включают действия, такие как выполнение команды, добавление файла или каталога, какой процесс запустить при запуске контейнера из образа и т. д. Этот процесс похож на то, как вы задаете серию команд в shell-скрипте. Как только вы запрашиваете создание образа, Docker читает dockerfile, выполняет инструкции и возвращает финальный образ.
Создание образа Docker
Существует два способа создания вашего пользовательского образа Docker. Вы можете создать его на своем компьютере или использовать Docker Hub, о котором мы говорили ранее. В этой части мы узнаем, как создать наш образ Docker локально, а затем опубликовать его в реестре Docker Hub.
Локальное создание с использованием Dockerfile
Мы создадим пользовательский образ Docker, используя изображение “Whale say”, которое является небольшим образом Docker (основанным на образе Ubuntu), который, когда вы его запускаете, говорит что-то, что вы запрограммировали, чтобы он сказал вам в ответ.
Сначала откройте терминал и создайте новую папку, введя:
mkdir mywhaleЭтот каталог служит “контекстом” для вашей сборки. Контекст просто означает, что он содержит все, что вам нужно для успешного создания вашего образа.
Перейдите в вашу новую папку с помощью:
cd mywhaleи создайте Dockerfile в папке, введя:
touch DockerfileТеперь вы должны увидеть пустой Dockerfile, который мы создали, если вы выполните команду ‘ll’:
ll$ ll
total 8.0K
-rw-rw-r-- 1 user user 0 23:26 DockerfileОткройте его в вашем любимом текстовом редакторе и добавьте:
FROM docker/whalesay:latestЭта первая строка инструкции с ключевым словом FROM говорит Docker, на каком образе основан ваш образ. Вы основываете свою новую работу на существующем образе whalesay.
Следующая инструкция, которую мы добавим, даст нашей киту возможность предсказывать судьбу. Для выполнения этой задачи мы будем использовать пакет fortune, который доступен в репозиториях Ubuntu (не забывайте, что образ кита основан на образе Ubuntu). Программа fortunes имеет команду, которая выводит мудрые изречения, которые наш кит будет говорить.
Итак, первый шаг — установить его. Для этого мы добавляем обычную инструкцию apt install:
RUN apt -y update && apt -y install fortunesКак только образ получит необходимое программное обеспечение, вы указываете, какое программное обеспечение запускать, когда образ загружается. Для этого мы добавляем следующую инструкцию:
CMD /usr/games/fortune -a | cowsayВышеуказанная строка говорит программе fortune отправить случайно выбранную цитату программе cowsay.
И мы закончили! Теперь сохраните файл и выйдите.
Вы можете проверить, что вы сделали, выполнив “cat Dockerfile”, чтобы ваш Dockerfile выглядел так:
cat DockerfileFROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsayТеперь, когда все (надеюсь) выглядит хорошо, пришло время создать наш образ Docker (не забудьте точку в конце команды):
docker build -t my-docker-whale .Вышеуказанная команда берет Dockerfile в текущей папке и создает образ с именем “my-docker-whale” на вашем локальном компьютере.
Вы можете проверить, что ваш образ Docker действительно сохранен на вашем компьютере, выполнив:
docker imagesЗатем вы можете запустить ваш образ Docker, введя следующее:
docker run my-docker-whaleКогда он запустится, вы получите что-то вроде следующего изображения

Публикация вашего пользовательского образа Docker на Docker Hub
Ваш следующий вариант — опубликовать созданный образ Docker в реестре Docker Hub. Для этого вам нужно будет создать учетную запись на веб-странице регистрации Docker Hub, где вы предоставите имя, пароль и адрес электронной почты для вашей учетной записи. Я также должен отметить, что служба Docker Hub бесплатна для публичных образов Docker. После того как вы создали свою учетную запись, вы можете отправить образ, который вы ранее создали, чтобы сделать его доступным для других.
Для этого вам понадобятся ID и TAG вашего образа “my-docker-whale”.
Снова выполните команду “docker images” и запишите ID и TAG вашего образа Docker, например, a69f3f5e1a31.
Теперь с помощью следующей команды мы подготовим наш образ Docker к его путешествию в внешний мир (часть команды с именем учетной записи — это ваше имя учетной записи на странице профиля Docker Hub):
docker tag a69f3f5e1a31 accountname/my-docker-whale:latestВыполните команду “docker images” и проверьте ваш новый тегированный образ.
Затем используйте команду “docker login”, чтобы войти в Docker Hub из командной строки.
Формат команды для входа:
docker login --username=yourhubusername [email protected]Когда вас попросят, введите свой пароль и нажмите Enter.
Теперь вы можете отправить свой образ в только что созданный репозиторий:
docker push accountname/my-docker-whaleВышеуказанная команда может занять некоторое время в зависимости от пропускной способности вашего соединения, так как она загружает около 180 МБ данных (в нашем примере). После завершения вы можете перейти в свой профиль на Docker Hub и проверить ваш новый образ.
Загрузка вашего пользовательского образа
Если вы хотите загрузить свой образ из репозитория Docker Hub, вам сначала нужно удалить оригинальный образ с вашего локального компьютера, потому что Docker откажется загружать из хаба, так как локальные и удаленные образы идентичны.
Как вы помните из предыдущей части, чтобы удалить образ Docker, вы должны выполнить команду “docker rmi”. Вы можете использовать ID или имя для удаления образа:
docker rmi -f a69f3f5e1a31Теперь, когда образ удален, вы можете загрузить и загрузить образ из вашего репозитория, используя команду “docker run”, указав ваше имя учетной записи из Docker Hub.
docker run accountname/my-docker-whaleПоскольку мы ранее удалили образ и он больше не был доступен в нашей локальной системе, Docker загрузит его и сохранит в назначенном месте.
Резюме
В этой части мы узнали, как создать файл Docker, написать несколько основных инструкций и создать образ, используя его в качестве рецепта. Мы также рассмотрели основы отправки нашего нового пользовательского образа в реестр Docker Hub и загрузки его на наш локальный компьютер. В следующей части этой серии уроков по Docker я покажу, как мы можем автоматизировать процесс создания образов, чтобы мы могли мгновенно создавать пользовательские образы всякий раз, когда они нам нужны! Оставайтесь с нами.
Get new posts in your inbox
No spam. Unsubscribe anytime.