Рубрики
Uncategorized

Создание изображения, управление и реестр (часть 2)

Tagging Docker Images Docker Tags Передайте полезную информацию о конкретном изображении … Tagged с Docker, Linux, DevOps, микросервисами.

Помечая документы докера

Docker Tags передает полезную информацию о конкретной версии/вариантах/вариантах.

Они псевдонимы к идентификатору вашего изображения, которое часто выглядит так: 8F5487C8B942.

Назначение тега во время создания изображения

docker build -t demo:v1 .

Назначение тега, если нет тега по умолчанию

Давайте создадим изображение без тега.

docker build .

Теперь давайте назначить тег на существующее изображение без тега.

docker tag adc07a47930e demo:v2

Тег для существующего тега изображения

Это создаст другое изображение с тем же идентификатором изображения.

docker tag demo:v2 demo2:v3

Докер фиксации

Всякий раз, когда вы вносите изменения внутри контейнера, может быть полезно совершить изменения или настройки файла контейнера в новое изображение.

По умолчанию преданный контейнер, и его процессы будут приостановлены при совершении изображения.

Синтаксис:

docker container commit CONTAINER-ID myimage01

Создан контейнер, содержащий файл context01.txt в корневом каталоге. Затем выделил контейнер на изображения, а затем создавая другой контейнер с того же изображения, где мы можем видеть, что присутствуют одни и те же файл/изменения.

Мы также можем определить команды при совершении изображений из контейнеров.

—Чейте Опция будет применять инструкции DockerFile на созданное изображение.

Поддерживаемые инструкции DockerFile:

  • CMD |. Выходная точка |. Env |. РАЗОБЛАЧАТЬ
  • Этикетка |. Onbuild |. Пользователь |. Объем |. Рабочий

команда

docker container commit --change='CMD ["ash"]' modified-container

Слои докера

Докинское изображение создано из серии слоев. Каждый слой представляет инструкцию в DockerFile Image.

Вот лучший ресурс, который я нашел для презентации.

Как, контейнер имеют слой R/W верхний слой, который соединен с базовым изображением. Или мы можем сказать, что одно базовое изображение подключено к разным контейнерам с помощью записи.

Давайте, смотрите некоторые сценарии. Построит Docker Image с помощью DockerFile и проверит слои.

DockerFile:

FROM ubuntu
RUN dd if=/dev/zero of=/root/file1.txt bs=1M count=100
RUN dd if=/dev/zero of=/root/file2.txt bs=1M count=100

Команда для проверки слоев изображения, где layerdemo01 это имя изображения.

docker image history layerdemo1

Ниже скриншот четко показывает, как 2 слоя имеют такой же громкость, поскольку они не добавляют громкость предыдущего слоя. Каждый слой имеет свой отдельный размер в соответствии с командой или изменениями.

Теперь, давайте попробуем удалить эти файлы, и я обнаружил, что 2 слоя были созданы с 0b. Но изображение все еще содержит то же самое 282 МБ .

Итак, в основном здесь у нас есть 5 слоев. Layer1 -> от Ubuntu Layer2 -> запустить dd, если =/dev/Zero of =/root/file1.txt layer3 -> запустить dd, если =/dev/ill of =/root/file2.txt layer4 -> запустить RM -f/root/file1.txt Payer5 -> RUOT RM -F/ROOT/FILE2.txt

Здесь только Layer4 и Sealy5 имеет дело с удалением этих файлов, но файл все еще там в Layer3 и Layer2. Это то, что изображение по-прежнему имеет тот же объем.

DockerFile:

FROM ubuntu
RUN dd if=/dev/zero of=/root/file1.txt bs=1M count=100
RUN dd if=/dev/zero of=/root/file2.txt bs=1M count=100
RUN rm -f /root/file1.txt
RUN rm -f /root/file2.txt

Для требования, где нам нужно удалить файлы после создания, мы можем использовать && Чтобы запустить оба команды в одном режиме. Это сохранит объем изображения

FROM ubuntu
RUN dd if=/dev/zero of=/root/file1.txt bs=1M count=100 && rm -f /root/file1.txt
RUN dd if=/dev/zero of=/root/file2.txt bs=1M count=100 && rm -f /root/file2.txt

Управление изображениями с помощью CLI

Так в основном лучшая практика использования команды для изображений

docker image 
  • Docker Pult Ubuntu Image Pull Ubuntu
  • Docker Images Image Ls
  • Docker Image Build.
  • Docker Image История
  • Docker Image Import.
  • Осмотрите изображение Docker
  • Docker Image Load
  • Docker Image Prune.
  • Docker Image Push

Проверка документов докера

Докинское изображение содержит много информации, некоторые из них включают в себя:

  • Дата создания
  • Команда
  • Переменные среды
  • Архитектура
  • Операционные системы
  • Размер

Команда Docker Image Image Inspect позволяет нам увидеть всю информацию, связанную с изображением докера.

Предположим, нам нужно получить конкретное поле из данных о проверке. E.G Имя хоста

мы можем использовать

docker image inspect ubuntu | grep 'Hostname'
docker image inspect ubuntu --format='{{.Id}}'

Есть определенные вещи, которые имеют родительские дочерние детали. Вроде, Containectonfig имеют имя хоста, доменное имя и т. Д. Но это будет дает только значения не ключ.

docker image inspect ubuntu --format='{{.ContainerConfig}}'

Если вы хотите ключ и значение обоих.

docker image inspect ubuntu --format='{{json .ContainerConfig}}'

Если вы просто хотите значение имени хоста, вы можете использовать команду ниже, чтобы отфильтровать информацию из данных о проверке.

docker image inspect ubuntu --format='{{.ContainerConfig.Hostname}}'

Docker Image Prune.

Docker Image Cruny Command позволяет нам очистить неиспользуемые изображения. По умолчанию команда ниже будет убирать только висных изображений.

Висячие без тегов и изображений, не указанных какого-либо контейнера

Чтобы обрезать все изображения, которые не обладают контейнера, мы можем использовать ниже команды.

docker image prune -a

Если вы хотите удалить все изображения, только которые не имеют тега, вы можете использовать ниже команды.

docker image prune

Перед обрезанием мы имели эти много изображений.

После запуска команды Prune.

Эти изображения были удалены, которые не были ссылки на контейнер.

Вот приведенная ниже команда изображения без тега () тега, который является висящим изображением, но он не может быть обрезанным, потому что у него связаны контейнеры.

Сравнивание документов докера

Изменение изображения в одном слое или специфическом слое.

Как мы знаем, у Ubuntu есть много слоев. Итак, чтобы объединить все слои на один слой. Есть один подход, который к, Импорт и экспорт в контейнер

Команды:

docker export myubuntu > myubuntudemo.tar
cat myubuntudemo.tar | docker import - myubuntu:latest

Строительство реестра Докера

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

Docker Hub является самым простым примером, что все мы должны были использовать.

Существуют различные типы реестра, которые включают в себя:

Docker Registry Docker Доверенный реестр Частный репозиторий (AWS ECR) Docker Hub.

Чтобы подтолкнуть изображение в центральный реестр, такой как DockerHub, есть три шага:

  • 1. Аутентифицировать свой клиент Docker в реестр Docker Ссылка на настройку реестра Docker https://hub.docker.com/_/registry/
docker run -d -p 5000:5000 --restart always --name registry registry:2
  • 2. Tag Docker Image с реестрами репозитория и дополнительным тегом изображения.
docker tag myubuntu:latest localhost:5000/myubuntu
 docker push localhost:5000/myubuntu

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

docker pull localhost:5000/myubuntu

Нажатие образа докера до докера

У меня есть мой аккаунт на Docker Hub и создал 1 репозиторий.

Итак, сначала мы войдем в концентратор Docker by CLI, а затем создать тег и нажать на него. Затем перед тем, как потянуть изображение, я удалил тег на изображение и удалил все контейнеры, связанные с этим контейнером, а затем вытяните изображение из репозитория Docker Hub.

docker login
docker tag busybox deepakporwal95/mydemo:v1
docker push deepakporwal95/mydemo:v1
docker pull deepakporwal95/mydemo:v1

Выдвижение пользовательского изображения в Docker Hub.

Потяните изображение из докера.

Поиск и фильтрация изображений из Docker Hub

Докерный поиск Busybox. Поиск image busybox
Докерный поиск busybox —лимит 5 Поиск изображения Bitebox с максимальным результатом 5
Докерный поиск —filter nginx Фильтр только официальные изображения

На поисках изображений Nginx.

Мы ограничим количество результатов.

При поиске изображений из докерского хаба мы получим много результатов. Мы можем отфильтровать эти результаты тремя сторонниками фильтра.

  1. звезды
  2. автоматизирован
  3. Это-чиновник это принесет нам только конкретный необходимый результат.

Движущиеся изображения по хостам

Предположим, что мы хотим отправлять образец Docker на другие хосты или экземпляры из полевой коробки или главного сервера. В этом случае мы сохраняем изображение в качестве ZIP, а затем перенесите это изображение на хост и наконец загрузит это изображение в хосте.

Кэш в докере

При создании контейнера или изображения он использует кеш каждого слоя, который уже был там.

Вот DockerFile и Thrue.txt детали, которые мы будем использовать для этой упрецеляции.

Dockerfile

FROM python:3.7-slim-buster
COPY . .
RUN pip install --quiet -r requirements.txt
ENTRYPOINT ["python", "server.py"]

требования

certifi==2018.8.24
chardet==3.0.4
Click==7.0
cycler==0.10.0
decorator==4.3.0
defusedxml==0.5.0

Вот команды, которые будут использоваться для создания изображений.

docker build -t without-cache .
docker build -t with-cache .

Без кеша

с кэшем

Список литературы: Официальный докер UDEMY курс

Кредит: ZEAL VORA

Prev: Создание, управление и реестр изображения (часть 1)

Следующий: Docker Networking

Оригинал: «https://dev.to/dporwal/image-creation-management-and-registry-part-2-514n»