Перейти к содержимому

Как узнать версию docker

  • автор:

Работа с образами — Docker: Основы

Docker — больше, чем просто программа. Это целая экосистема со множеством проектов и сервисов.

В работе с Docker часто приходится иметь дело с Registry. Это хранилище образов, которое работает как репозиторий пакетов любого пакетного менеджера. Именно здесь хранятся образы, которые Docker скачивает во время выполнения команды docker run . Посмотреть список образов хранилища можно на сайте https://hub.docker.com/ .

docker images

Список образов, скачанных на компьютер, можно посмотреть командой docker images :

# В вашем случае вывод будет отличаться docker images REPOSITORY TAG IMAGE ID CREATED SIZE workshopdevops*web latest cfd7771b4b3a 2 days ago 817MB hexletbasics*app latest 8e34a5f631ea 2 days ago 1.3GB mokevnin/rails latest 96487c602a9b 2 days ago 743MB ubuntu latest 2a4cca5ac898 3 days ago 111MB ruby 2.4 713da53688a6 3 weeks ago 687MB ruby 2.5 4c7885e3f2bb 3 weeks ago 881MB nginx latest 3f8a4339aadd 3 weeks ago 108MB elixir latest 93617745963c 4 weeks ago 889MB postgres latest ec61d13c8566 5 weeks ago 287MB 

Вторая колонка в выводе выше называется TAG. Когда мы выполняли команду docker run nginx , то на самом деле выполнялась команда docker run nginx:latest . То есть мы не просто скачиваем образ nginx, а скачиваем его конкретный тег. latest — тег по умолчанию. По задумке он обозначает последнюю версию образа.

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

Теги в Docker изменяемы. Другими словами, создатель образа может перезаписать образ, связанный с любым тегом. Такой подход может показаться странным и ненадежным, ведь нет гарантий. К счастью, на практике, есть определенные соглашения, которым стараются следовать все популярные образы. Тег latest действительно содержит последнюю версию и постоянно обновляется, но кроме этого тега активно используется семантическое версионирование . Рассмотрим теги https://hub.docker.com/_/nginx

Теги с полной семантической версией (x.x.x) делают неизменяемыми, даже если в них встречается что-то еще — например, 1.12.2-alpine. Такую версию смело можно брать для продакшен-окружения, так как создатели образа гарантируют, что они будут следовать общим правилам. Теги, подобные такому 1.12, обновляются при изменении patch версии. То есть внутри образа может оказаться и версия 1.12.2 и в будущем 1.12.8. Точно такая же схема и с версиями, в которых указана только мажорная версия, например, 1. Только в данном случае обновление идет не только по патчу, но и по минорной версии.

docker pull

Как влияют теги на работу команды docker run во время скачивания образа? docker run скачивает образ если его нет, но эта проверка не связана с обновлением содержимого. Если nginx:latest обновился, то docker run его не будет скачивать, он использует тот latest, который прямо сейчас уже загружен. Для гарантированного обновления образа существует другая команда: docker pull . Вот она всегда проверяет, обновился ли образ для определенного тега.

# Пытается скачать обновления в образе # даже если он присутствует в локальной системе docker pull nginx 

Кроме тегов имя образа может содержать префикс, например, etsy/chef . Этот префикс является именем аккаунта на сайте, через который создаются образы, попадающие в Registry. Большинство образов как раз такие, с префиксом. И есть небольшой набор, буквально сотня образов, которые не имеют префикса. Их особенность в том, что эти образы поддерживает сам Docker. Поэтому если вы видите, что в имени образа нет префикса, значит это официальный образ. Список таких образов можно увидеть здесь .

docker rmi

Удаляются образы командой docker rmi .

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

Если в Docker присутствует хоть один контейнер из удаляемого образа, то Docker не даст его удалить, так как это автоматически бы привело к исчезновению всех контейнеров, что может быть нежелательным поведением. Если вы все же хотите удалить и образ, и все контейнеры, связанные с ним, используйте флаг -f .

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Как узнать версию docker

dir.by Сайт dream-land.by
перенесен на dir.by —>

Поиск

Как узнать версию Docker (нажимаем вкладку «Docker Engine») | Docker Desktop

Посмотрели 405 раз(а)

Как узнать версию Docker (нажимаем вкладку «Docker Engine») | Docker Desktop

последнее обновление: 4 декабря 2022

Открываем Docker Desktop

Нажимаем на Docker Engine:

← Предыдущая тема
[v] enable Docker for Kubernetes

Следующая тема →
Сайты для изучения Docker

Как установить Docker на CentOS

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

Разработчики используют Docker для создания приложений изолированно друг от друга. Благодаря контейнеризации платформы они могут объединить все ресурсы в одной среде, включая ОС и необходимые библиотеки.

Так, существенно упрощается отладка, обновление и повторное развертывание приложений. Это также оптимизирует эксплуатационные расходы, позволяя пользователям запускать несколько приложений на одном веб-сервере.

Существует две вариации Docker:

  • Community Edition (CE) — это бесплатная платформа контейнеризации с открытым исходным кодом.
  • Enterprise Edition (EE) — премиальная сертифицированная платформа, поставляемая с дополнительными функциями, которые могут помочь предприятиям более эффективно запускать, управлять и защищать свои контейнеры.

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

Требования к ОС

  • 64-разрядный сервер;
  • Версия CentOS 7, CentOS 8 (Stream) или CentOS 9 (Stream);
  • Пользователь без полномочий root с привилегиями sudo или суперпользователь;
  • Включённый репозиторий CentOS Extras.

Важно! Как правило, репозиторий CentOS Extras включён по умолчанию.

Как удалить старые версии Docker

Если вы уже устанавливали старые версии Docker («docker» или «docker-engine»), перед установкой новой удалите их вместе со всеми зависимостями с помощью команд:

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

Настройка и установка Docker CE на CentOS 7

  1. Обновите локальную базу данных пакетов:

sudo yum check-update

  1. Загрузите последнюю доступную версию Docker из официального репозитория:

curl -fsSL https://get.docker.com/ | sh

  1. После завершения установки запустите демон Docker:

sudo systemctl start docker

  1. Убедитесь, что он работает:

sudo systemctl status docker

Если служба активна и работает, вы получите примерно следующий вывод:

Output
docker.service — Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 09:03:45 DST; 6 weeks 1 days ago
Docs: https://docs.docker.com
Main PID: 749 (docker)

  1. Убедитесь, что Docker запускается при каждой перезагрузке сервера:

sudo systemctl enable docker

Готово! Теперь на вашем сервере установлен Docker.

Как установить Docker CE на CentOS 8 (Stream) / CentOS 9 (Stream)

  1. Чтобы управлять репозиториями и получить доступ к расширенному управлению пакетами, установите дополнительные утилиты:

sudo dnf install yum-utils

  1. Добавьте репозиторий с последними стабильными версиями Docker:

sudo dng config-manager —add-repo=https://download.docker.com/linux/centos/docker-ce.repo

  1. После успешной настройки репозитория выполните следующую команду, чтобы узнать, какая версия Docker доступна для установки.
  2. sudo dnf list docker-ce

На выходе вы должны получить примерно следующий результат:

Docker CE Stable — x86_64 1.5 kB/s | 3.4 kB 00:03
Available Packages
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable

  1. Установите последнюю стабильную версию Docker:

sudo dnf install docker-ce —nobest -y

  1. После установки воспользуйтесь утилитой systemctl, чтобы запустить и включить Docker на своём сервере:

sudo systemctl start docker
sudo systemctl enable docker

  1. Проверьте установленную версию Docker:

На выходе вы получите ответ, похожий на:

Docker version 19.03.13, build 4484c46d9d

Как загрузить и запустить образ в Docker

По умолчанию образы Docker извлекаются из Docker Hub, официального репозитория платформы. Любой может создавать и размещать там свои образы. Именно поэтому большинство приложений и дистрибутивов Linux, которые вам могут понадобиться для запуска контейнеров Docker, имеют образы, размещённые в Docker Hub.

  1. Чтобы проверить, можете ли вы получить доступ и загрузить образы из Docker Hub, введите:

docker run hello-world

  1. Если всё работает верно, в результате вы получите:

«Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
7050e35b49f5: Pull complete
Digest: sha256:6e8b6f026e0b9c419ea0fd02d3905dd0952ad1feea67543f525c73a0a790fefb
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the «hello-world» image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/»

Как работать с контейнерами в Docker

Чтобы запустить контейнер Docker и управлять им, вам в любом случае понадобится определённый образ. Вы можете искать любые образы, доступные в Docker Hub, с помощью команды docker с подкомандой search.

Например, чтобы найти образ CentOS, введите:
docker search centos

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

docker version

The version command prints the current version number for all independently versioned Docker components. Use the —format option to customize the output.

The version command ( docker version ) outputs the version numbers of Docker components, while the —version flag ( docker —version ) outputs the version number of the Docker CLI you are using.

Default output

The default output renders all version information divided into two sections; the «Client» section contains information about the Docker CLI and client components, and the «Server» section contains information about the Docker Engine and components used by the Engine, such as the «Containerd» and «Runc» OCI Runtimes.

The information shown may differ depending on how you installed Docker and what components are in use. The following example shows the output on a macOS machine running Docker Desktop:

content_copy

Client and server versions

Docker uses a client/server architecture, which allows you to use the Docker CLI on your local machine to control a Docker Engine running on a remote machine, which can be (for example) a machine running in the Cloud or inside a Virtual Machine.

The following example switches the Docker CLI to use a context named «remote-test-server», which runs an older version of the Docker Engine on a Linux server:

content_copy

API version and version negotiation

The API version used by the client depends on the Docker Engine that the Docker CLI is connecting with. When connecting with the Docker Engine, the Docker CLI and Docker Engine perform API version negotiation, and select the highest API version that is supported by both the Docker CLI and the Docker Engine.

For example, if the CLI is connecting with a Docker 19.03 engine, it downgrades to API version 1.40 (refer to the API version matrix to learn about the supported API versions for Docker Engine):

content_copy

Be aware that API version can also be overridden using the DOCKER_API_VERSION environment variable, which can be useful for debugging purposes, and disables API version negotiation. The following example illustrates an environment where the DOCKER_API_VERSION environment variable is set. Unsetting the environment variable removes the override, and re-enables API version negotiation:

content_copy

  OptionShortDefaultDescription --format -f Format output using a custom template:
'json': Print in JSON format
'TEMPLATE': Print output using the given Go template.
Refer to https://docs.docker.com/go/formatting/ open_in_new for more information about formatting output with templates

Examples

Format the output (—format)

The formatting option ( —format ) pretty-prints the output using a Go template, which allows you to customize the output format, or to obtain specific information from the output. Refer to the format command and log output page for details of the format.

Get the server version

content_copy

The following example prints the API version that is used by the client:

content_copy

The version shown is the API version that is negotiated between the client and the Docker Engine. Refer to API version and version negotiation above for more information.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *