Статья была впервые опубликована в публичном аккаунте 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
Вы увидите вывод консоли следующим образом:
Примечание. Так как официальный сервер склада DockerHub находится за границей, скорость загрузки низкая, поэтому я изменил адрес склада на отечественный.
docker.io
, так что на картинке выше перед зеркалом будетdocker.io
Появляться.
когда естьDownloadedКогда строка выводится, загрузка прошла успешно! !
1.2 Проверка
Проверим, есть ли зеркало Mysql5.7 локально, выполним команду:
docker images
Вы можете видеть, что зеркало существует локально, и загрузка действительно прошла успешно!
1.3 Загрузить информацию, связанную с зеркалом
Чтобы сказать, что зеркало над процессом загрузки:
В процессе загрузки вы можете видеть, что изображение обычно состоит из нескольких слоев (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
Мы видим, что основными поддерживаемыми подкомандами являются:
-
-a, --all-tags=true|false
: получать ли все образы на складе, по умолчанию нет; -
--disable-content-trust
: пропустить проверку содержимого изображения, значение по умолчанию — true;
2. Информация об образе просмотра Docker
2.1 Команда images выводит список изображений
Выведите список существующих образов на этом компьютере с помощью следующих двух команд:
docker images
или:
docker image ls
Как показано ниже:
Объясните поля, отмеченные красным выше:
- REPOSITORY: с какого склада;
- TAG: Информация об этикетке изображения, такая как 5,7, последние указывает на разную информацию о версии;
- IMAGE ID: Mirror ID, если вы видите, что два ID идентичны, то на самом деле они указывают на одно и то же изображение, только название метки разное;
- CREATED: время последнего обновления зеркала;
- SIZE: Размер изображения, отличные изображения, как правило, небольшого размера, поэтому я предпочитаю использовать облегченную альпийскую версию;
Примечание. Информация о размере изображения на рисунке представляет собой только информацию о логическом размере, поскольку изображение состоит из нескольких слоев изображения (
layer
), а один и тот же уровень образа будет хранить только одну копию локально, поэтому в реальной ситуации размер занимаемой физической памяти может быть меньше логического размера.
2.2 Используйте команду tag для добавления тегов к изображениям
Обычно, чтобы быстро найти зеркало в последующей работе, мы можем использоватьdocker tag
команда, чтобы добавить новую метку для локального образа. Как показано ниже:
заdocker.io/mysql
Зеркало, добавьте новый тег зеркалаallen_mysql:5.7
. затем используйтеdocker images
Команда для просмотра локального зеркала:
Как видите, есть еще один локальный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
то, что возвращаетсяJSON
Информация о формате, если вы хотите получить один из указанного контента, вы можете передать-f
указать, например, чтобы получить размер изображения:
docker inspect -f {{".Size"}} docker.io/mysql:5.7
2.4 Используйте команду history для просмотра истории изображений
В предыдущем разделе мы знали, что изображение состоит из нескольких слоев, так как же узнать конкретное содержимое каждого слоя?
пройти черезdocker history
команда, вы можете перечислить информацию о создании каждого слоя (слоя), как мы видимdocker.io/mysql:5.7
Информация о слое:
docker history docker.io/mysql:5.7
Как видите, длинная информация выше опущена для удобства отображения.Если вы хотите увидеть конкретную информацию, вы можете добавить--no-trunc
параметры, как в следующей команде:
docker history --no-trunc docker.io/mysql:5.7
3. Поисковое зеркало Docker
3.1 команда поиска
Вы можете выполнить поиск с помощью следующей команды:
docker search [option] keyword
Например, вы хотите выполнить поиск в репозиторииmysql
Для связанных изображений вы можете ввести следующие команды:
docker search mysql
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
В качестве другого примера, мы хотим превысить количество поисковых звезд mysql зеркало 100:
docker search --filter=stars=100 mysql
4. Резюме
В этой статье мы сосредоточились на изучении загрузки изображений, просмотре информации об изображении и поиске изображений в Docker. Эта статья является первой, следующая статья поможет вам узнать больше об операциях с зеркалами, и я желаю вам счастливого изучения!
Бесплатная раздача | Интервью и ресурсы для обучения
Недавно я нашел в Интернете хороший ресурс в формате PDF «Java Core Interview Knowledge.pdf», чтобы поделиться с вами не только интервью, но и изучением, вы все стоит того! ! !
Как получить: Подпишитесь на официальный аккаунт:Сяоха изучает Java, закулисный ответресурс, вы можете получить ссылку на ресурс, это каталог и несколько скриншотов:
Важные вещи говорятся дважды, как это получить: Подпишитесь на официальный аккаунт:Сяоха изучает Java, закулисный ответресурс, как за ссылки на ресурсы! ! !