Docker — это мощная платформа, позволяющая контейнеризировать приложения и последовательно развертывать их в различных средах. Приводим пошаговое руководство по установке Docker на Ubuntu 20.04.
Шаг 1: Обновление репозитория пакетов
Перед установкой Docker рекомендуется обновить репозиторий пакетов, чтобы убедиться в наличии актуальной информации о доступных пакетах. Откройте терминал на машине Ubuntu и выполните команды:
sudo apt update
Шаг 2: Установка необходимых зависимостей
Для работы Docker требуются некоторые предварительные компоненты, которые можно установить с помощью следующей команды:
После добавления репозитория можно установить Docker:
sudo apt update
sudo apt install docker-ce
Шаг 5: Запуск и включение Docker
После установки Docker запустите службу Docker и включите ее запуск при загрузке:
sudo systemctl start docker
sudo systemctl enable docker
Шаг 6: Проверка установки Docker
Убедиться в успешной установке Docker можно, запустив простой контейнер hello-world:
sudo docker run hello-world
Если все настроено правильно, вы увидите вывод, свидетельствующий о корректной работе Docker.
Шаг 7: Управление Docker от имени не root-пользователя (необязательный пункт)
По умолчанию для работы Docker требуются привилегии root. Однако вы можете добавить своего пользователя в группу «docker», чтобы использовать Docker без sudo:
sudo usermod -aG docker $USER
Не забудьте выйти из системы и снова войти в нее или перезагрузить систему, чтобы изменения в группах вступили в силу.
Установка и запуск Nginx в Docker-контейнере на Ubuntu
Чтобы установить и запустить Nginx в контейнере Docker на Ubuntu, вы можете выполнить следующие шаги:
Установите Docker на вашу систему Ubuntu. Откройте терминал и выполните следующие команды:
sudo apt update
sudo apt install docker.io
Извлеките официальный образ Nginx из Docker Hub, выполнив следующую команду:
sudo docker pull nginx
После загрузки образа вы можете запустить контейнер Docker с помощью следующей команды:
sudo docker run -d -p 80:80 nginx
Эта команда запускает контейнер в отсоединенном режиме (`-d`), сопоставляет порт 80 контейнера с портом 80 хоста (`-p 80:80`) и использует образ Nginx.
Получите доступ к Nginx: После запуска контейнера вы можете получить доступ к Nginx, открыв веб-браузер и введя `http://localhost` или IP-адрес вашей системы Ubuntu. Если вы хотите обслуживать файлы из определенного каталога на вашей системе Ubuntu, вы можете назначить том с хоста на контейнер. Например, если файлы вашего сайта расположены в директории `/path/to/website`, вы можете изменить команду `docker run` следующим образом:
sudo docker run -d -p 80:80 -v /path/to/website:/usr/share/nginx/html nginx
Эта команда монтирует каталог `/path/to/website` на хосте в каталог `/usr/share/nginx/html` внутри контейнера, позволяя Nginx обслуживать файлы из этого места.
Теперь у вас есть Nginx, запущенный в контейнере Docker на Ubuntu. Не забывайте корректировать команды и пути в зависимости от ваших конкретных настроек и требований.
Как запустить веб-приложение на Nginx в Docker
Чтобы запустить веб-приложение на Nginx в Docker, необходимо выполнить следующие общие шаги:
Убедитесь, что ваше веб-приложение готово и имеет все необходимые файлы и зависимости.
Создайте Dockerfile в корневом каталоге вашего веб-приложения. Dockerfile содержит инструкции по созданию образа Docker.
# Use a base image
FROM nginx:latest
# Copy the application files to the container
COPY . /usr/share/nginx/html
# Expose the container port
EXPOSE 80
Соберите образ Docker — откройте терминал, перейдите в каталог с Dockerfile и выполните команду для сборки образа Docker. Эта команда создаст образ с именем «my-webapp» на основе Dockerfile.
docker build -t my-webapp .
Запустите контейнер Docker: После того как образ собран, вы можете запустить контейнер из него с помощью следующей команды.
docker run -d -p 80:80 my-webapp
Эта команда запускает контейнер в отсоединенном режиме (`-d`), сопоставляя порт 80 контейнера с портом 80 хоста (`-p 80:80`) и используя образ «my-webapp».
Получите доступ к веб-приложению: После запуска контейнера вы можете получить доступ к вашему веб-приложению, открыв веб-браузер и введя `http://localhost` или соответствующий IP-адрес вашего хоста Docker.
Эти шаги предполагают, что ваше веб-приложение совместимо с Nginx и может обслуживаться как статические файлы. Не забудьте адаптировать шаги в соответствии с конкретными требованиями вашего веб-приложения.
Повышение безопасности контейнеров Docker
Контейнеры Docker — эффективное и масштабируемое решение для разработки и развертывания ПО. Обеспечение безопасности контейнерных приложений важно для защиты конфиденциальных данных и предотвращения несанкционированного доступа. Рассмотрим несколько основных методов повышения безопасности контейнеров Docker, которые позволят вам создавать надежные и безопасные контейнерные среды.
Используйте официальные образы и проверенные репозитории
Официальные образы регулярно обновляются, а их целостность поддерживается надежными организациями. Проверенные репозитории помогают убедиться, что используемые вами образы получены из надежных источников. Вы минимизируете риск использования потенциально взломанных или устаревших образов контейнеров.
Регулярно обновляйте образы контейнеров
Обновления часто включают исправления безопасности и ошибки, которые устраняют уязвимости, обнаруженные со временем. Регулярно обновляя образы контейнеров, вы сможете использовать эти улучшения безопасности и защитить свои контейнеры от потенциальных угроз.
Средства сканирования уязвимостей анализируют компоненты образа и сравнивают их с обширной базой данных уязвимостей. Обнаружив и устранив уязвимости до развертывания, вы сможете значительно снизить риск их эксплуатации.
Используйте безопасные базовые образы
Начинайте процесс контейнеризации с безопасного базового образа. Избегайте использования типовых или минималистичных образов, в которых отсутствуют необходимые меры безопасности. Вместо этого выбирайте базовые образы, созданные с учетом требований безопасности, например, предоставленные официальными репозиториями Docker или авторитетными сторонними источниками.
Реализуйте принцип наименьших привилегий
При настройке разрешений контейнеров следуйте принципу наименьших привилегий. Убедитесь, что контейнеры имеют только необходимые разрешения и права доступа, необходимые для нормального функционирования. Ограничьте выполнение контейнеров от имени root и предоставляйте определенные привилегии только в случае крайней необходимости. Минимизировав привилегии своих контейнеров, вы сможете уменьшить потенциальное воздействие компрометации.
Включите Docker Content Trust
Docker Content Trust служит для обеспечения целостности и подлинности образа. DCT использует криптографические подписи для проверки подлинности образов и предотвращения выполнения измененных или поддельных образов. Включив DCT, вы можете гарантировать, что в вашей среде будут развернуты только подписанные и проверенные образы, что снижает риск вредоносного внедрения образов.
Изолируйте контейнеры с помощью правильной конфигурации сети
Внедрите сегментацию и изоляцию сети, чтобы ограничить подверженность контейнеров внешним угрозам. Используйте сетевые функции Docker, такие как мостовые сети, чтобы разделить контейнеры и контролировать их взаимодействие. Используйте брандмауэры и группы безопасности для ограничения сетевого доступа между контейнерами, разрешая только необходимые соединения.
Используйте безопасный контейнерный хост
Поддержание безопасности узла контейнера и базовой среды имеет решающее значение для общей безопасности контейнера. Регулярно устанавливайте заплатки и обновляйте хост-систему для устранения любых уязвимостей безопасности. Для защиты хост-системы внедрите надежные средства контроля доступа, включая аутентификацию и авторизацию пользователей. Кроме того, рассмотрите возможность использования решений безопасности на уровне хоста, такие как системы обнаружения вторжений и контроля целостности файлов, для укрепления безопасности всей среды.
Повышение безопасности контейнеров Docker требует многоуровневого подхода, включающего в себя различные методы. Следуя нашим советам, вы можете значительно повысить безопасность ваших контейнеров Docker.
Удаление образов, контейнеров, томов и сети Docker
Docker — инструмент для создания приложений с использованием контейнеров. При инициализации Docker появляются расходные файлы и объекты, которые необходимо очищать.
Вы можете удалять появившиеся структуры руками, но лучше оптимизировать эту задачу через командную строку.
Удаление контейнеров
Перейдите во вкладку «Containers/Apps» (веб Docker Desktop). Укажите, что нужно сделать с элементами и примените:
Также, способ, использую консоль. Команда для удаления — docker container rm. Синтаксис:
Параметры — (—force/-f — удаление контейнера в принудительном порядке), (—link/-l — удалить связь между элементами), (—volume/-v — удалить неопределенные тома, которые связаны с контейнером). ID получите с помощью команды — docker ps.
Параметры:
—-all или -a: выводим все работающие контейнеры
—filter или -f: фильтрация флагов
—format: формат вывода
—last или -n: вывод информации о последних n контейнерах
—latest или -l: вывод информации о последнем контейнере
—no-trunc: полный вывод
—quiet или -q: отдельный вывод идентификационного номера
—size или -s: вывод размера
С этими параметрами можно гибко взаимодействовать с группой контейнеров или отдельными единицами. Например, чтобы создать списки контейнеров на удаление — docker ps -a -f status=created -f status=exited, чтобы удалить — docker container rm $(docker ps -a -f status=created -f status=exited -q). Перед удалением лучше остановить предполагаемые контейнеры. Чтобы удалить все контейнеры:
docker stop $(docker ps -a -q)
docker container rm $(docker ps -a -q)
Удаление образов
Перейдите во вкладку «Images».
Чтобы удалить, найдите «Clean up…», выберите образы для удаления. Если образ в работе, просто удалить его не получится.
—force или -f: удалить образ в принудительном порядке
—no-prune: не удалять непомеченные
Узнать ID образа:
docker images [параметры] [REPOSITORY:[TAG]]
Параметры:
—all или -a: выводим все образы. По умолчанию промежуточные будут скрыты;
—digests: выводим дайджесты;
—filter или -f: фильтр по флагам;
—format: формат вывода;
—no-trunc: не обрезать вывод;
—quiet или -q: выводим только идентификаторы;
Запросите нужный список образов и используйте его как параметр для команды docker rmi. В качестве примера избавимся от образов, не привязанных к контейнерам. Для этого воспользуемся флагом dangling=true — docker images –filter dangling=true. Чтобы удалить список — docker rmi $(docker images –filter dangling=true -q). Чтобы удалить неработающие образы — команда docker image prune.
Удаление томов
Том — это файловая система, которая находится вне контейнеров, размещенная на хост-машине. Если вы хотите освободить пространство на диске от них, перейдите в раздел «Volumes», в правом верхнем углу выберите:
Чтобы удалить тома: docker volume rm [параметры] [имена томов]
Параметров у этой команды довольно мало, возможно принудительное удаление тома. Удалить можно только те тома, что не связаны с работающими контейнерами.
docker volume ls [параметры] — команда для определения имени тома. Параметры:
—filter или -f: фильтр по флагам
—format: формат вывода
—quiet или -q: выводим только имена
Чтобы стереть тома, несвязанные с контейнерами — docker volume ls -f dangling=true. Команда для запуска удаления — docker volume rm $(docker volume ls -f dangling=true -q). Но можно обойтись и другой командой для удаления таких томов: docker volume prune.
Удалить сети
Чтобы удалить сети в Docker, используйте команду «docker network rm» со следующим синтаксисом:
docker network rm [Сетевые имена/идентификаторы]
Эта команда не имеет параметров. Вы можете передавать как имена, так и идентификаторы. Чтобы узнать имена и идентификаторы сетей, используйте «docker network ls»:
docker network ls [параметры]
Есть 4 параметра:
—filter или -f: фильтровать по флагам
—format: выходной формат
—no-trunc: не обрезать вывод
—quiet или -q: показать только идентификаторы
Перед удалением сети необходимо удалить объекты, которые ее используют. Чтобы узнать, какие контейнеры используют конкретную сеть, используйте следующую команду:
docker ps -f network=[ID сети]
После этого можно приступать к удалению сети. Например, чтобы удалить сети со значением driver=bridge:
docker network ls -f driver=bridge
docker network rm $(docker network ls -f driver=bridge -q)
Очистка Docker от всех объектов
Сначала остановить и удалить все контейнеры:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Удалить все образы:
docker rmi $(docker images -a -q)
Удалить все тома:
docker volume rm $(docker volume ls -a -q)
Удалить все сети:
docker network rm $(docker network ls -a -q)
Как установить Docker на Ubuntu 22.04
Docker — программное обеспечение с открытым исходным кодом. Docker используют для создания контейнеров (виртуализация). Контейнеры меньше расходуют вычислительные ресурсы, в отличии виртуальных машин.
Системные требования
Docker может быть запущен совместно с большим количеством системных архитектур. Требования к аппаратной оболочке зависят от задач, которые будут выполнятся. Поэтому, настоятельно рекомендуем перед использованием Docker провести анализ, чтобы выявить необходимость развертки контейнеров.
Установка Docker на Ubuntu 22.04
Обновите пакеты
sudo apt update
Установите специальные пакеты
curl
software-properties-common
ca-certificates
apt-transport-https
Команда для установки — sudo apt install curl software-properties-common ca-certificates apt-transport-https -y
Команда автоматически примет все необходимые соглашения
Проконтролируйте, установка зависимостей должна происходить в подготовленной среде (репозитории).
Установите Docker
sudo apt install docker-ce -y
Проверьте успешность установки:
sudo systemctl status docker
Если успешно — статус Active(Running)
Docker Compose — Ubuntu 22.04
Docker Compose — инструмент Docker. С помощью него возможно управлять множеством контейнеров. Оркестрация позволяет образовать большое количество контейнеров в единую инфраструктуру. Диспетчеризация (управление) производится через YAML-файл, содержащий параметры для контейнеров и программных оболочек.
Установка через Git
sudo apt-get install git
Узнать версию Git
git —version
Чтобы перенести репозиторий, перейдите на веб-страницу Docker Compose на GitHub и скопируйте выделенную на картинке ссылку:
Как только файлы загрузятся, установите права на использование:
sudo chmod +x /usr/local/bin/docker-compose
Apt-get установка
Используя встроенный пакетный менеджер, установить Docker Compose можете через команду:
sudo apt-get install docker-compose
Docker — установка и использование
Введение
Docker — инструмент управления процессами приложений в контейнерах. Контейнеры позволяют запускать приложения в изолированной среде и схожи с виртуальными машинами, но изолированные среды контейнеров более мобильные. Также, контейнеры более зависимые от действий оператора хоста.
Для установки и использования Docker вам понадобятся:
Настроенный сервер Ubuntu 20.04
Учетная запись в Docker Hub, если вы хотите передавать созданные образы
Шаг 1
Установите Docker из официального репозитория Ubuntu. Чтобы установить последнюю версию, добавьте ключ GPG из Docker, потом установите пакет.
По умолчанию команда docker может быть запущена только пользователем root или пользователем в группе docker, которая автоматически создается в процессе установки Docker.Если вы попытаетесь запустить команду docker без префикса sudo или не находясь в группе docker, вы получите такой вывод:
Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
Если вы не хотите вводить sudo при каждом запуске команды docker, добавьте свое имя пользователя в группу docker:
sudo usermod -aG docker ${USER}
Чтобы применить новую конфигурацию в группе, выйдите из сервера и снова войдите или введите следующее:
su - ${USER}
Вам будет предложено ввести пароль пользователя, чтобы продолжить.
Подтвердите, что ваш пользователь теперь добавлен в группу докеров, набрав:
groups
Если вам нужно добавить пользователя в группу docker, под которым вы не вошли в систему, объявите это имя пользователя самостоятельно, используя:
sudo usermod -aG docker username
В оставшейся части этой статьи предполагается, что вы запускаете команду docker от имени пользователя в группе docker. Если вы решите этого не делать, добавьте к командам sudo.
Далее давайте рассмотрим команду docker.
Шаг 3
Использование докера заключается в передаче ему цепочки параметров и команд, за которыми следуют аргументы. Синтаксис принимает такую форму:
docker [option] [command] [arguments]
Чтобы увидеть весь список команд:
docker
Output
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Шаг 4
Контейнеры Docker создаются из образов Docker. По умолчанию Docker извлекает эти образы из Docker Hub, реестра Docker, которым управляет Docker, компания, стоящая за проектом Docker. Любой может разместить свои образы Docker на Docker Hub, поэтому образы большинства приложений и дистрибутивов Linux, которые вам понадобятся, будут размещены там.
Чтобы проверить, можете ли вы получить доступ и загрузить образы из Docker Hub, введите:
docker run hello-world
Output
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.
Первоначально Docker не смог найти образ hello-world локально, поэтому он загрузил образ из Docker Hub, который является репозиторием по умолчанию. После загрузки образа Docker создал контейнер из образа, и приложение внутри контейнера запустилось, отобразив сообщение. В официальном столбце OK указывает на образ, созданный и поддерживаемый компанией, стоящей за проектом. После того, как вы определили образ, который хотите использовать, вы можете загрузить его на свой компьютер с помощью подкоманды pull.
Выполните следующую команду, чтобы загрузить официальный образ Ubuntu на свой компьютер:
docker pull ubuntu
После загрузки образа вы можете запустить контейнер, используя загруженный образ с помощью подкоманды run. Как вы видели в примере с hello-world, если образ не был загружен, когда docker выполняется с командой run, клиент Docker сначала загружает образ, а затем запускает контейнер, используя его.
Шаг 5
Контейнер hello-world, который вы запустили на предыдущем шаге, является примером контейнера, который запускается и завершает работу после отправки тестового сообщения. Контейнеры могут быть гораздо полезнее, и они могут быть интерактивными. Ведь они похожи на виртуальные машины, только более ресурсоемкие.
В качестве примера давайте запустим контейнер, используя последний образ Ubuntu. Комбинация ключей -i и -t обеспечивает интерактивный доступ оболочки к контейнеру:
docker run -it ubuntu
Обратите внимание на идентификатор контейнера в командной строке. В данном примере это d9b100f2f636. Этот идентификатор контейнера понадобится вам позже, чтобы идентифицировать контейнер, когда вы захотите его удалить.
Теперь вы можете запустить любую команду внутри контейнера. Например, давайте обновим базу данных пакетов внутри контейнера. Вам не нужно ставить перед какой-либо командой префикс sudo, потому что вы работаете внутри контейнера как пользователь root:
apt update
apt install nodejs
node -v
Шаг 6
После некоторого использования Docker у вас будет много активных (работающих) и неактивных контейнеров на вашем компьютере. Для просмотра активных используйте:
docker ps
В этом руководстве вы запустили два контейнера; один из образа hello-world, а другой из образа ubuntu. Оба контейнера больше не работают, но они все еще существуют в вашей системе.
Чтобы просмотреть все контейнеры — активные и неактивные, запустите docker ps с ключом -a:
docker ps -a
Вы увидите вывод, похожий на этот:
1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 8 seconds ago quizzical_mcnulty
a707221a5f6c hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago youthful_curie
Чтобы просмотреть последний созданный вами контейнер, передайте ему ключ -l:
docker ps -l
Вывод:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 40 seconds ago quizzical_mcnulty
Чтобы запустить остановленный контейнер, используйте docker start, за которым следует идентификатор контейнера или имя контейнера. Запустим контейнер на основе Ubuntu с идентификатором 1c08a7a0d0e4:
docker start 1c08a7a0d0e4
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c08a7a0d0e4 ubuntu "/bin/bash" 3 minutes ago Up 5 seconds
Чтобы остановить работающий контейнер, используйте docker stop, а затем идентификатор или имя контейнера. На этот раз мы будем использовать имя, которое Docker присвоил контейнеру, — quizzical_mcnulty:
docker stop quizzical_mcnulty
Как только вы решили, что вам больше не нужен контейнер, удалите его с помощью команды docker rm, снова используя либо идентификатор контейнера, либо имя. Используйте команду docker ps -a, чтобы найти идентификатор или имя контейнера, связанного с образом hello-world, и удалить его.
docker rm youthful_curie
Вы можете запустить новый контейнер и дать ему имя с помощью переключателя —name. Вы также можете использовать параметр —rm для создания контейнера, который удаляет себя при остановке. Дополнительные сведения об этих и других параметрах см. в справочной команде docker run.
Шаг 7
Когда вы запускаете образ Docker, вы можете создавать, изменять и удалять файлы так же, как на виртуальной машине. Вносимые вами изменения будут применяться только к этому контейнеру. Вы можете запускать и останавливать его, но как только вы уничтожите его с помощью команды docker rm, изменения будут потеряны навсегда. После установки Node.js внутри контейнера Ubuntu у вас теперь есть контейнер, работающий на основе образа, но контейнер отличается от образа, который вы использовали для его создания. Но вы, возможно, захотите повторно использовать этот контейнер Node.js в качестве основы для новых образов позже.
Затем зафиксируйте изменения в новом экземпляре образа Docker с помощью следующей команды:
docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name
Переключатель -m предназначен для сообщения фиксации, которое помогает вам и другим узнать, какие изменения вы внесли, а -a используется для указания автора. container_id — это тот, который вы отметили ранее в руководстве, когда запускали интерактивный сеанс Docker. Если вы не создали дополнительные репозитории в Docker Hub, репозиторий обычно является вашим именем пользователя Docker Hub.
Например, для пользователя sammy с идентификатором контейнера d9b100f2f636 команда будет выглядеть так:
docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs
Когда вы фиксируете изображение, новое изображение сохраняется локально на вашем компьютере. Позже в этом руководстве вы узнаете, как отправить образ в реестр Docker, например Docker Hub, чтобы другие могли получить к нему доступ.
Повторный просмотр образов Docker покажет новый образ, а также старый, из которого он был получен:
docker images
Output
REPOSITORY TAG IMAGE ID CREATED SIZE
sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
...
В этом примере ubuntu-nodejs — это новый образ, созданный на основе существующего образа ubuntu из Docker Hub. Разница в размерах отражает внесенные изменения. И в этом примере изменение заключалось в том, что был установлен NodeJS. Поэтому в следующий раз, когда вам понадобится запустить контейнер с помощью Ubuntu с предустановленным NodeJS, вы можете просто использовать новый образ.
Вы также можете создавать образы из Dockerfile, что позволяет автоматизировать установку программного обеспечения в новом образе. Однако это выходит за рамки данного руководства.
Шаг 8
Следующий логический шаг после создания нового образа из существующего — поделиться им с несколькими избранными друзьями, со всем миром в Docker Hub или в другом реестре Docker, к которому у вас есть доступ. Чтобы отправить образ в Docker Hub или любой другой реестр Docker, у вас должна быть там учетная запись.
В этом разделе показано, как отправить образ Docker в Docker Hub. Чтобы узнать, как создать собственный частный реестр Docker, ознакомьтесь со статьей Как настроить частный реестр Docker в Ubuntu 18.04.
Чтобы отправить образ, сначала войдите в Docker Hub:
docker login -u docker-registry-username
Затем вы можете отправить свой собственный образ, используя:
Чтобы отправить образ ubuntu-nodejs в репозиторий sammy, команда будет выглядеть так:
docker push sammy/ubuntu-nodejs
После отправки образа в реестр он должен быть указан на панели управления вашей учетной записи, как показано на изображении ниже:
Войдите в систему Docker. Затем убедитесь, что образ существует на странице репозитория Docker Hub. Теперь вы можете использовать docker pull sammy/ubuntu-nodejs, чтобы перетащить образ на новую машину и использовать его для запуска нового контейнера.