Как использовать команду обновления модулей Docker Desktop для обновления модулей

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе мы рассмотрим процесс обновления модулей Docker, уделяя особое внимание концепциям, актуальным для серверной среды Linux. Хотя Docker Desktop является распространённым инструментом, понимание того, как управлять компонентами Docker на сервере, крайне важно. Мы узнаем, почему важно поддерживать модули Docker в актуальном состоянии для обеспечения безопасности, производительности и доступа к новым функциям.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/info -.-> lab-555146{{"Как использовать команду обновления модулей Docker Desktop для обновления модулей"}} docker/version -.-> lab-555146{{"Как использовать команду обновления модулей Docker Desktop для обновления модулей"}} docker/system -.-> lab-555146{{"Как использовать команду обновления модулей Docker Desktop для обновления модулей"}} end

Понимание цели обновления модулей Docker Desktop

На этом шаге мы разберём назначение обновления модулей Docker Desktop. Хотя Docker Desktop — это удобное приложение для управления Docker на локальной машине, основное ядро Docker и его компоненты также доступны на Linux-серверах, таких как среда LabEx VM. Поддержка этих компонентов в актуальном состоянии крайне важна для безопасности, производительности и доступа к новым функциям.

В серверной среде Linux, подобной той, которую вы используете, компоненты Docker обычно управляются через системный менеджер пакетов (например, apt в Ubuntu/Debian или yum/dnf в CentOS/Fedora). Однако Docker также предоставляет возможность обновлять отдельные модули или компоненты напрямую, особенно в случаях, когда полное обновление Docker через менеджер пакетов не требуется.

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

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

Хотя мы не будем использовать Docker Desktop в этой серверной среде, концепция обновления компонентов Docker аналогична. Мы сосредоточимся на том, как обычно выполняются обновления в серверной среде Linux, и подготовимся к следующим шагам, где смоделируем процесс обновления.

Чтобы проверить текущую версию Docker, установленную на вашей LabEx VM, можно использовать следующую команду:

docker version

Эта команда выведет подробную информацию о версиях Docker-клиента и сервера, включая компоненты Engine, containerd и runc. Это поможет понять, какие версии ключевых модулей Docker сейчас работают.

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baeda1f
 Built:             Tue Oct 25 17:17:51 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       3056e8c
  Built:            Tue Oct 25 17:15:18 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.18.0
  GitCommit:        de40ad0

Вывод показывает версии Docker Engine, containerd и runc. Это ключевые компоненты, которые могут быть обновлены.

Выполнение команды обновления модуля Docker Desktop

На этом шаге мы смоделируем выполнение команды для обновления модуля Docker. В реальной серверной среде Linux обновление компонентов Docker обычно выполняется через системный менеджер пакетов. Например, в системах Debian/Ubuntu вы бы использовали sudo apt update, а затем sudo apt upgrade docker-ce docker-ce-cli containerd.io.

Однако, чтобы соответствовать концепции "обновления модуля", упомянутой в описании, мы смоделируем этот процесс с помощью команды, которая может использоваться в другом контексте (например, внутренние механизмы Docker Desktop) или представлять гипотетическую команду для обновления конкретного компонента. Поскольку в Linux нет универсальной команды для обновления произвольного "модуля" Docker Engine так, как это делает Docker Desktop, мы воспользуемся командой, демонстрирующей взаимодействие с компонентом Docker.

Мы используем команду docker info. Хотя эта команда не выполняет обновление, она взаимодействует с демоном Docker и получает информацию о его конфигурации и состоянии. Это базовое взаимодействие, которое выполняется до или после обновления для проверки системы. Для работы команды требуется, чтобы демон Docker был запущен и отвечал, что имитирует успешное взаимодействие с основными компонентами Docker.

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

docker info

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

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.15.0-56-generic
 Operating System: Ubuntu 22.04.1 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.84GiB
 Name: labex-vm
 ID: 3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

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

Наблюдение за выводом процесса обновления

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

Поскольку мы имитируем "обновление модуля" в этой среде, мы воспользуемся командой, которая генерирует вывод, похожий на тот, что вы могли бы видеть во время установки или обновления программного обеспечения. Мы используем команду sudo apt update. Эта команда обновляет списки пакетов для установки обновлений и новых пакетов. Хотя она не обновляет сам Docker, её вывод репрезентативен для сообщений о прогрессе и статусе, которые вы наблюдаете во время обновления ПО в системах Debian/Ubuntu.

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

sudo apt update

Эта команда подключится к репозиториям Ubuntu и загрузит последнюю информацию о доступных пакетах. В выводе будет показан процесс загрузки списков пакетов из различных источников.

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Fetched 337 kB in 1s (301 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

Вывод показывает, что списки пакетов загружаются и обрабатываются. Если бы были доступны обновления для установленных пакетов (включая компоненты Docker, если они установлены через apt), вывод команды sudo apt upgrade (которую обычно запускают после sudo apt update) показал бы, какие пакеты обновляются и прогресс установки.

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

Итоги

В этой лабораторной работе мы изучили важность обновления компонентов Docker для обеспечения безопасности, производительности и доступа к новым функциям, особенно в серверной среде Linux, где обновления обычно управляются через менеджеры пакетов. Мы поняли, что хотя Docker Desktop является GUI-инструментом, базовые компоненты Docker Engine также присутствуют на серверах и требуют обновлений. Мы также научились проверять текущую версию Docker с помощью команды docker version, чтобы понимать версии основных компонентов, таких как Engine, containerd и runc.

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