Как обновить docker на windows

Обновлено: 02.07.2024

Docker Desktop для Windows — это нативное Windows-приложение, которое предоставляет среду для сборки и запуска контейнеризированных приложений. В его основе лежат нативная Hyper-V виртуализация и сеть, что является наиболее быстрым и стабильным вариантом для работы с Docker в Windows. Docker Desktop для Windows поддерживает как Windows-, так и Linux-контейнеры.

Что нужно знать перед установкой Docker на Windows?

Нам потребуется операционная система Windows 10 версии Корпоративная, Профессиональная или Образовательная. Также должны быть подключены компоненты Hyper-V и Windows Containers. Для работы с этими компонентами система должна выполнять следующие требования:

Не менее 4 ГБ оперативной памяти.

Поддержка аппаратной виртуализации на уровне BIOS.

Есть два способа проверить, включена ли у вас виртуализация на уровне BIOS.

Способ №1: Посмотреть в «Диспетчер задач» > «Производительность» в поле «Виртуализация» должно быть значение «Включено» :


Способ №2: Воспользоваться утилитой systeminfo . Для этого нужно открыть приложение Windows Powershell или Командную строку с правами администратора ( Win+R ) и запустить команду systeminfo . Нас интересует последний пункт — «Требования Hyper-V» , где значением каждого подпункта должно быть «Да» :


Наличие технологии Microsoft Hyper-V является обязательным условием для установки Docker в Windows. Инсталлятор Docker для Windows предложит вам включить нужные компоненты и перезагрузить вашу машину.

Примечание: Если у вас на компьютере было установлено бесплатное ПО виртуализации VirtualBox, то после включения компонента Hyper-V VirtualBox перестанет работать, при этом все образы ваших виртуальных машин будут сохранены.

Docker для Windows включает в себя следующие компоненты:

Docker CLI клиент

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

Установка Docker на Windows 10

Существует два варианта установки Docker на Windows:

Приложение «Docker Toolbox for Windows».

Приложение «Docker for Windows».

Далее запускаем инсталлятор Docker Desktop Installer.exe . Следуйте инструкциям мастера установки, дайте установщику разрешение на использование прав администратора и дождитесь окончания установки.

Примечание: Приложению Docker права администратора нужны для того, чтобы установить сетевые компоненты, создать ссылки на само приложение и дать возможность Hyper-V управлять виртуальными машинами.

Чтобы запустить Docker Desktop, воспользуйтесь поиском в Windows:


Индикатором запуска Docker является иконка «кита», появившаяся в системном трее:



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

В списке дел еще нет элементов! Добавьте элемент выше.

Ничего сложного, верно? Давайте сделаем это.

Обновление исходного кода

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

Запустите новый контейнер с обновленным кодом.

Ой! Скорее всего, вы получили ошибку наподобие следующей (идентификаторы будут другими):

Что же произошло? Новый контейнер не удалось запустить, так как старый контейнер все еще выполняется. Причина проблемы заключается в том, что контейнер использует порт 3000 узла, но ожидать передачи данных через определенный порт на компьютере может только один процесс (включая контейнеры). Чтобы устранить эту проблему, удалите старый контейнер.

Замена старого контейнера

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

Удаление контейнера с помощью CLI

Получите идентификатор контейнера с помощью команды docker ps .

Остановите контейнер с помощью команды docker stop .

После остановки контейнера его можно удалить с помощью команды docker rm .

Вы можете отключить и удалить контейнер одной командой, добавив флаг force в команду docker rm . Пример: docker rm -f <the-container-id>

Удаление контейнера с помощью представления Docker

Открыв расширение VS Code, можно удалить контейнер двумя щелчками мыши! Это, несомненно, намного проще, чем сначала искать идентификатор контейнера, а затем удалять его.

Открыв расширение, перейдите к контейнеру и щелкните его правой кнопкой мыши.

Выберите пункт Удалить.

Подтвердите удаление, и на этом всё!

Представление Docker — удаление контейнера

Запуск обновленного контейнера приложения

Теперь запустите обновленное приложение.

Резюме

Хотя сборка обновления удалась, вы могли обратить внимание на два момента.

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

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

Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:

  • Windows 10 Version 1803 Build 1734 и выше
  • Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)




Установка Docker-CE 17.09.0

Мы будем устанавливать Docker Community Edition 17.09.0 (потому что на момент написания этой статьи более свежие версии падали при установке на WSL).

Первое, что мы сделаем — избавимся от всех предыдущих установок Docker (если таковые были). Для этого запустим bash-терминал и напишем следующее:

Теперь установим репозиторий для Docker CE. Через apt-get мы можем установить нужную версию, самостоятельно не занимаясь её сборкой из исходников. Следуя рекомендациям на официальном сайте Docker, мы пишем следующие команды:


Если вы когда либо добавляли новый репозиторий с помощью apt, всё это вам в целом знакомо. Если нет — надеюсь, вы всё равно остались со мной :)

Далее устанавливаем Docker:


Если вы не используете WSL в стиле Ubuntu, список доступных версий можно посмотреть так:

… или использовать аналогичную команду какой-то другой библиотеки, если вы отказались от APT

В конце нужно добавить своего текущего пользователя в группу ‘docker’, чтобы получить возможность правильно использовать Docker Engine («движок»), который должен быть запущен в вашей системе с правами root.

Запуск Docker на Windows

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

Чтобы немного упростить процесс, создайте в /usr /local/sbin/ новый файл — скрипт, который содержит соответствующие команды для запуска сервиса Docker:


со следующим содержимым:


Первая команда sudo — это монтирование cgroups (оно выполнится при перезагрузке), а вторая отдает сервис docker в руки systemd (это подсистема Ubuntu для инициализации и управления службами).

Теперь разрешите скрипту запуститься и выполните его:


Однако сервис Docker не запустится по двум причинам:

  1. Сценарий выполняет вызовы как суперпользователь, поэтому сам скрипт должен быть запущен с правами суперпользователя, чтобы работать как задумано. По идее, сделать это так же просто, как написать любую команду sudo, но для этого пользователь должен после каждой загрузки вводить свои данные, что сильно раздражает.
  2. Первая команда для монтирования cgroups должна быть выполнена в bash с повышенными привилегиями. Чтобы запустить её без ввода данных пользователем, нам придётся использовать Windows Task Scheduler.

Запуск скрипта с правами root без пользовательского ввода

В ОС семейства Linux файл /etc /sudoers определяет, кто и что может запускать с правами суперпользователя. Давайте модифицируем его так, чтобы ваш пользователь смог вызывать скрипт без необходимости постоянного ввода пароля root. (Но будьте очень осторожны с этим файлом! Очень легко выпилить себя из системы, если вы не знаете, что делаете!)


Добавим в конец файла новую строку. При этом вы должны точно знать имя своего пользователя (запустите echo $USER, если не уверены):


Теперь мы можем запустить сервис Docker с правами root без пользовательского ввода:

Правильный запуск Docker при загрузке Windows

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


Запустите Планировщик задач Windows и выберите Task Scheduler Library на левой панели. Затем выберите Create Task (создать задачу) на правой панели.


Далее вам предложат отредактировать основные настройки задачи. Дайте вашей задаче понятное название и убедитесь, что остальные настройки соответствуют моим. Важно, чтобы вы выбрали «Запуск с повышенными привилегиями» (Run with highest privileges).


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

Переключившись на вкладку Actions, создайте новое действие, которое будет запускать bash и сразу же выполнять наш скрипт с ключом -с:

Обратите внимание, что это нужно делать с повышенными привилегиями, поэтому проверьте галочку Run with highest privileges на вкладке General.


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


Ну вот, всё идёт так, как мы задумали. Если вы на предыдущих этапах еще не запускали Docker, используя команды с повышенными привилегиями, просто щёлкните правой кнопкой мыши по задаче, созданной нами в Планировщике задач, и выберите «Выполнить»! Вот и всё!

Проверьте, что всё работает

Если хотите перестраховаться — перезагрузите свою машину (да, ради этого вам придётся в кое веки закрыть вкладки вашего браузера), запустите bash и введите:


Если всё пройдёт хорошо, то вы увидите стандартное приветствие Docker’а. Сервис запустится автоматически и прямо в WSL! Мои поздравления!

Закругляемся

Вы только что установили и запустили Docker в WSL. Это означает, что ваши контейнеры теперь могут совместно использовать ​​Ubuntu, уже работающую в вашей системе. Таким образом отпадает необходимость разворачивать новую (виртуализированную) ОС, как это делает обычный Docker для Windows.

Производительность работы Docker в WSL пока [на момент написания оригинальной статьи] оставляет желать лучшего, но по мере развития платформы и выпуска обновлений Windows она будет только улучшаться.

Я следую за этим с помощью apt-get update , затем либо:, apt-get upgrade или apt-get upgrade docker.io , но все, что он мне дает, это:

Я использую Ubuntu 14.04 (верный) 64-битный сервер.

РЕДАКТИРОВАТЬ: я думаю, что я использовал скрипт в этом посте комментарий для установки Docker (так как он подразумевал, чтобы я мог просто набрать Docker вместо Docker.io)

Я не знаю, какова цель сценария, кроме переименования двоичного файла "docker.io" в просто "docker". @Braiam: Я тоже не был уверен, но так как я не слишком знаком с Linux linux O / S, я надеялся, что он делает что-то более полезное, чем это (или, возможно, это был просто лучший способ, чем просто переименовать двоичный файл) ).

Предположим, что это релиз Ubuntu Trusty (14.04), официально имеющий 0.9.1

Официальное руководство здесь. Установите докер для Ubuntu , старый релиз имел другое название пакета.

  • docker.io : используется для очень старой версии в репозитории Ubuntu по умолчанию (можете пропустить здесь)
  • docker-engine : используется до выпуска 1.13.x
  • docker-ce : с 17.03

Тогда вы можете легко обновить до последней версии докера

А в случае, если вы не хотите устанавливать последний пакет, вы можете сделать что-то вроде ниже.

Есть ли у вас плюсы / минусы использования этого метода по сравнению с тем, который я обнаружил при установке из htts: //get.docker.io? Я бы подумал, что тот из домена Docker кажется более официальным, но если это те же парни, которые управляют ppa docker-maint / testing /, то, возможно, это не имеет значения. Я не знаю, ссылка на ваш метод немного устарела, PPA - хороший выбор для пользователя Ubuntu, и это от команды разработчиков Docker Ubuntu, он также заслуживает доверия. Вероятно, как вы сказали, те же ребята, у которых есть лучший способ служить сообществу ;-) @Gerrat снова возвращается к вашему решению, если перейти на 1.0 сейчас gpg: no writable keyring found: eof -> использовать sudo .

Один из способов обновления до последней версии (без установки от источника), чтобы использовать инструкции здесь , предоставляемые Digital океан:

Добавьте ключ хранилища docker в apt-key для проверки пакета

Добавьте репозиторий docker к источникам aptitude:

Обновите репозиторий новым дополнением:

Наконец, скачайте и установите докер:

Это, однако, означает, что вы решаете использовать потенциально менее стабильную версию апстрима. Например, после обновления до вышестоящего докера 1.1.0 я начал видеть ошибку Driver aufs failed to remove root filesystem при удалении определенных контейнеров. Я никогда не видел этого с пакетом docker.io, который, по-видимому, более протестирован и стабилен в Trusty.

Краткий ответ: официальный документ по установке Docker теперь покрывает это для Ubuntu 14.04 (хотя это не так ясно, как могло бы быть).


Сегодня контейнеры являются одной из самых популярных технологий на рынке. Если у вас нет машины на Linux, вот инструкции по использованию Docker toolbox, чтобы установить Docker на Windows.

Итак, вы хотите начать пользоваться Docker, но не очень хотите вместе с этим еще и учиться пользоваться Linux. Я крайне рекомендую пользоваться Docker на Linux, но, наверное, у вас есть причина, по которой вы выбрали Windows. К вашему счастью, Docker создал инструмент, который делает использование их ПО довольно простым на Windows.

Это ПО называется Doc k er Toolbox. Эта программа устанавливает все необходимые компоненты, позволяющие работать с Docker на Windows. И сразу предупреждаю: нет, Docker не перенесли свою платформу на Windows. Docker устанавливает VirtualBox, Boot2docker и специальный терминал быстрого доступа (запускает ВМ Boot2docker). Docker Toolbox сильно облегчает запуск Docker на машине под Windows.

Давайте разберем процесс установки и использования данного инструмента.

Установка

Простота Docker toolbox заметна сразу с начала процесса установки. Поскольку это Windows, то вся установка это - скачать файл и сделать несколько кликов мышкой. Скачайте файл и нажмите на него, чтобы запустить мастер установки.

В мастере установки ничего необычного нет. Он состоит из следующих шагов:

  • Куда установить Docker toolbox
  • Какие компоненты установить (рис. 1)
  • Выбор дополнительных компонентов (создание ярлыка на рабочем столе, обновить Boot2Docker VM и др.)
  • Начать установку


Во время установки вас попросят разрешить установку device software. Это нужно для того, чтобы Oracel VirtualBox могу получить доступ к подсистему USB. Как только, установка device software будет закончена, мастер установки завершит процесс.

Использование

На рабочем столе должны появиться 3 иконки:

  • Docker quickstart terminal
  • Oracle VM VirtualBox
  • Kitematic

Для запуска Docker Toolbox надо 2 раза нажать на Docker Quickstart Terminal. После запуска произойдет автоматическая проверка версии Boot2docker, запустятся необходимые компоненты и можно начать пользоваться Docker.


Теперь можно делать с Docker все то, что можно делать на машине с Linux. Пулить образы, разворачивать контейнеры, разрабатывать с контейнерами, и все это на машине с Windows.

Docker для каждого

Docker Toolbox доступен абсолютно бесплатно для Windows и Mac. Даже если у вас нет достаточно умений, чтобы запустить Linux сервер, вы все равно можете пользоваться всеми возможностями Docker.

Читайте также: