По поводу работы образов Docker достаточно прочитать эту статью!(Часть 1)

Docker

Docker 镜像学习上
Обучение образу Docker

Статья была впервые опубликована в публичном аккаунте WeChat: Сяоха изучает Java

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

содержание:

  • 1. Загрузка образа Docker
    • 1.1 Скачать зеркало
    • 1.2 Проверка
    • 1.3 Загрузить информацию, связанную с зеркалом
    • 1.4 Подкоманда ВЫТЯНУТЬ
  • 2. Информация об образе просмотра Docker
    • 2.1 Команда images выводит список изображений
    • 2.2 Используйте команду tag, чтобы пометить зеркало
    • 2.3 Используйте команду проверки для просмотра деталей изображения
    • 2.4 Используйте команду history для просмотра истории изображений
  • 3. Поисковое зеркало Docker
    • 3.1 команда поиска
    • 3.2 Подкоманда поиска
  • 4. Резюме

1. Загрузка образа Docker

Если мы хотим запустить контейнер локально, мы должны убедиться, что соответствующий образ существует локально. Итак, первый шаг, нам нужно скачать зеркало. Когда мы пытаемся загрузить образ, Docker попытается загрузить его из репозитория образов по умолчанию (по умолчанию используется общедоступный репозиторий Docker Hub).Конечно, пользователи также могут настроить репозиторий образов, которые они хотят загрузить.

1.1 Скачать зеркало

Изображение является предпосылкой запуска контейнера, мы можем использоватьdocker pull [IMAGE_NAME]:[TAG]команда для загрузки изображения, гдеIMAGE_NAMEпредставляет имя изображения иTAGэто метка зеркала, а это значит, что нам нужно пройти "зеркало + этикетка"Способ загрузки изображения.

Примечание. Вы также можете не указывать TAG явно, он по умолчанию загрузит последний тег, то есть загрузит последнюю версию зеркала в репозиторий. Не рекомендуется загружать последнюю версию тега, поскольку содержимое зеркала будет отслеживать последнюю версию зеркала и изменяться вместе с ней, поэтому оно нестабильно. В производственной среде могут появляться необъяснимые ошибки, рекомендуется указывать конкретный отображаемый ТАГ.

Например, если мы хотим загрузить образ Mysql 5.7, мы можем загрузить его с помощью команды:

docker pull mysql:5.7

Вы увидите вывод консоли следующим образом:

Docker 下载镜像
Загрузка образа докера

Примечание. Так как официальный сервер склада DockerHub находится за границей, скорость загрузки низкая, поэтому я изменил адрес склада на отечественный.docker.io, так что на картинке выше перед зеркалом будетdocker.ioПоявляться.

когда естьDownloadedКогда строка выводится, загрузка прошла успешно! !

1.2 Проверка

Проверим, есть ли зеркало Mysql5.7 локально, выполним команду:

docker images

验证本地镜像是否存在
Убедитесь, что локальное зеркало существует

Вы можете видеть, что зеркало существует локально, и загрузка действительно прошла успешно!

1.3 Загрузить информацию, связанную с зеркалом

Чтобы сказать, что зеркало над процессом загрузки:

Docker 镜像下载
Загрузка образа докера

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

PS: На самом деле полный идентификатор состоит из 256 бит и 64 шестнадцатеричных символов.

Вы можете подумать, что если несколько разных зеркал содержат один и тот же слой (layer), Вы повторяете загрузку, это не приводит к пустой трате места на диске?

Собственно, Докер не настолько глуп, чтобы скачивать дубликаты слоев (layer), перед загрузкой Docker проверит, есть ли локально слой с таким же ID, если он уже есть локально, просто используйте локальный.

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

Строго говоря, мы используемdocker pullПри командовании также нужно указать адрес склада перед зеркалом (Registry), если он не указан, Docker будет использовать ваш адрес репозитория по умолчанию. Например выше, так как я настроил внутреннийdocker.ioадрес склада, я нахожусь вpull, docker по умолчанию добавит его мнеdocker.io/libraryпрефикс.

например: когда я выполняюdocker pull mysql:5.7команда, фактически эквивалентнаdocker pull docker.io/mysql:5.7, если вы не настроите репозиторий конфигурации, адрес DockerHub будет добавлен перед образом по умолчанию при загрузке.

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

1.4 Подкоманда ВЫТЯНУТЬ

Введите в командной строке:

docker pull --help

Вы получите следующую информацию:

[root@iZbp1j8y1bab0djl9gdp33Z ~]# docker pull --help

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --help                    Print usage

Мы видим, что основными поддерживаемыми подкомандами являются:

  1. -a, --all-tags=true|false: получать ли все образы на складе, по умолчанию нет;
  2. --disable-content-trust: пропустить проверку содержимого изображения, значение по умолчанию — true;

2. Информация об образе просмотра Docker

2.1 Команда images выводит список изображений

Выведите список существующих образов на этом компьютере с помощью следующих двух команд:

docker images

или:

docker image ls

Как показано ниже:

Docker 查看镜像信息
Информация об образе представления Docker

Объясните поля, отмеченные красным выше:

  • REPOSITORY: с какого склада;
  • TAG: Информация об этикетке изображения, такая как 5,7, последние указывает на разную информацию о версии;
  • IMAGE ID: Mirror ID, если вы видите, что два ID идентичны, то на самом деле они указывают на одно и то же изображение, только название метки разное;
  • CREATED: время последнего обновления зеркала;
  • SIZE: Размер изображения, отличные изображения, как правило, небольшого размера, поэтому я предпочитаю использовать облегченную альпийскую версию;

Примечание. Информация о размере изображения на рисунке представляет собой только информацию о логическом размере, поскольку изображение состоит из нескольких слоев изображения (layer), а один и тот же уровень образа будет хранить только одну копию локально, поэтому в реальной ситуации размер занимаемой физической памяти может быть меньше логического размера.

2.2 Используйте команду tag для добавления тегов к изображениям

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

Docker tag 添加标签
Тег Docker добавить теги

заdocker.io/mysqlЗеркало, добавьте новый тег зеркалаallen_mysql:5.7. затем используйтеdocker imagesКоманда для просмотра локального зеркала:

Docker tag 添加标签
Тег Docker добавить теги

Как видите, есть еще один локальныйallen_mysql:5.7зеркальное отражение. Если вы будете осторожны, вы обнаружите, чтоallen_mysql:5.7иdocker.io/mysql:5.7Идентификаторы зеркал полностью совпадают, что указывает на то, что они являются одним и тем же зеркалом, но псевдонимы разные.

docker tagКомандная функция больше похожа на добавление ярлыка к указанному изображению.

2.3 Используйте команду проверки для просмотра деталей изображения

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

docker inspect docker.io/mysql:5.7

Docker inspect 查看镜像详细信息
Docker Inspect View Mirror Details

docker inspectто, что возвращаетсяJSONИнформация о формате, если вы хотите получить один из указанного контента, вы можете передать-fуказать, например, чтобы получить размер изображения:

docker inspect -f {{".Size"}} docker.io/mysql:5.7

Docker inspect 查看镜像详细信息
Проверка Docker Посмотреть сведения об образе

2.4 Используйте команду history для просмотра истории изображений

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

пройти черезdocker historyкоманда, вы можете перечислить информацию о создании каждого слоя (слоя), как мы видимdocker.io/mysql:5.7Информация о слое:

docker history docker.io/mysql:5.7

Docker history 各层信息
Информация об истории Docker на каждом уровне

Как видите, длинная информация выше опущена для удобства отображения.Если вы хотите увидеть конкретную информацию, вы можете добавить--no-truncпараметры, как в следующей команде:

docker history --no-trunc docker.io/mysql:5.7

3. Поисковое зеркало Docker

3.1 команда поиска

Вы можете выполнить поиск с помощью следующей команды:

docker search [option] keyword

Например, вы хотите выполнить поиск в репозиторииmysqlДля связанных изображений вы можете ввести следующие команды:

docker search mysql

Docker 搜索镜像
Docker ищет изображения

3.2 Подкоманда поиска

ввод командной строкиdocker search --helpРезультат выглядит следующим образом:

Usage:  docker search [OPTIONS] TERM

Search the Docker Hub for images

Options:
  -f, --filter filter   Filter output based on conditions provided
      --help            Print usage
      --limit int       Max number of search results (default 25)
      --no-index        Don't truncate output
      --no-trunc        Don't truncate output

можно увидетьsearchПоддерживаемые подкоманды:

  • -f, --filter filter: фильтровать выводимый контент;
  • --limit int: укажите количество содержимого поиска для отображения;
  • --no-index: не обрезать выходной контент;
  • --no-trunc: не обрезать выходной контент;

Например, если мы хотим найти официальный образ mysql, команда выглядит следующим образом:

docker search --filter=is-offical=true mysql

Docker 搜索官方镜像
Docker ищет официальные образы

В качестве другого примера, мы хотим превысить количество поисковых звезд mysql зеркало 100:

docker search --filter=stars=100 mysql

Docker 搜索镜像
Docker ищет изображения

4. Резюме

В этой статье мы сосредоточились на изучении загрузки изображений, просмотре информации об изображении и поиске изображений в Docker. Эта статья является первой, следующая статья поможет вам узнать больше об операциях с зеркалами, и я желаю вам счастливого изучения!

Бесплатная раздача | Интервью и ресурсы для обучения

Недавно я нашел в Интернете хороший ресурс в формате PDF «Java Core Interview Knowledge.pdf», чтобы поделиться с вами не только интервью, но и изучением, вы все стоит того! ! !

Как получить: Подпишитесь на официальный аккаунт:Сяоха изучает Java, закулисный ответресурс, вы можете получить ссылку на ресурс, это каталог и несколько скриншотов:

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

福利资源截图
Скриншот ресурсов социального обеспечения

Важные вещи говорятся дважды, как это получить: Подпишитесь на официальный аккаунт:Сяоха изучает Java, закулисный ответресурс, как за ссылки на ресурсы! ! !

Добро пожаловать, чтобы обратить внимание на личный общедоступный номер: Сяоха изучает Java

小哈学Java