- Установка Docker на Windows
- Что нужно знать перед установкой Docker на Windows?
- Установка Docker на Windows 10
- Docker Desktop — самый простой способ запустить контейнер приложения
- Что такое Docker Desktop?
- Версии Docker
- Выпуски Docker Desktop
- Docker на Windows
- 1. Использование Docker Toolbox
- 2. Использование Docker Desktop
- Установка Docker на Windows
- Установка Docker на macOS
- Работа с образами
- Возможности Docker Desktop
- Что такое Docker? What is Docker?
- Сравнение контейнеров Docker с виртуальными машинами Comparing Docker containers with virtual machines
- Простая аналогия A simple analogy
Установка Docker на Windows
Обновл. 13 Апр 2021 |
Docker Desktop для Windows — это нативное Windows-приложение, которое предоставляет среду для сборки и запуска контейнеризированных приложений. В его основе лежат нативная Hyper-V виртуализация и сеть, что является наиболее быстрым и стабильным вариантом для работы с Docker в Windows. Docker Desktop для Windows поддерживает как Windows-, так и Linux-контейнеры.
Что нужно знать перед установкой Docker на Windows?
Нам потребуется операционная система Windows 10 версии Корпоративная, Профессиональная или Образовательная. Также должны быть подключены компоненты Hyper-V и Windows Containers. Для работы с этими компонентами система должна выполнять следующие требования:
64-разрядный процессор с поддержкой преобразования адресов второго уровня (сокр. «SLAT» от англ. «Second Level Address Translation»).
Не менее 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 Toolbox for Windows» является устаревшим решением, которым вы можете воспользоваться, если ваш компьютер не удовлетворяет требованиям установки «Docker for Windows». Более детально об установке Docker Toolbox вы можете прочитать здесь.
На этом уроке мы установим Docker через приложение «Docker for Windows», так как это решение является наиболее стабильным и надежным. Итак, сначала нам нужно скачать установщик.
Далее запускаем инсталлятор Docker Desktop Installer.exe . Следуйте инструкциям мастера установки, дайте установщику разрешение на использование прав администратора и дождитесь окончания установки.
Примечание: Приложению Docker права администратора нужны для того, чтобы установить сетевые компоненты, создать ссылки на само приложение и дать возможность Hyper-V управлять виртуальными машинами.
Чтобы запустить Docker Desktop, воспользуйтесь поиском в Windows:
Индикатором запуска Docker является иконка «кита», появившаяся в системном трее:
Если иконка «кита» скрыта в системном трее, то нажмите на стрелочку вверх, чтобы посмотреть все иконки. После установки Docker Desktop вы также получите всплывающее уведомление о том, что Docker установлен и готов к работе:
После того, как инициализация закончена, нажмите на иконку «кита» в системном трее и выберите пункт «About Docker Desktop» , чтобы проверить, что вы используете последнюю версию Docker.
Поздравляю! Вы успешно установили Docker Desktop на Windows.
Поделиться в социальных сетях:
Docker Desktop — самый простой способ запустить контейнер приложения
Эта статья даст вам полное представление о Docker Desktop для пользователей Windows и MAC. Мы изучим установку Docker Desktop на компьютерах с Windows и Mac. После установки мы также попытаемся выполнить некоторые операции Docker.
Что такое Docker Desktop?
Docker Desktop — это собственное настольное приложение, разработанное Docker для пользователей Windows и MAC. Это самый простой способ запуска, сборки, отладки и тестирования приложений Dockerized.
Docker Desktop предлагает важные и наиболее полезные функции, такие как быстрые циклы редактирования, уведомления об изменениях файлов, встроенная поддержка корпоративной сети и гибкость для работы с собственным выбором прокси и VPN.
Docker Desktop состоит из инструментов для разработчика, приложения Docker, Kubernetes и синхронизации версий. Он позволяет вам создавать сертифицированные образы и шаблоны языков и инструментов.
Прежде чем перейти к процессу установки, давайте разберемся с его версиями.
Версии Docker
Docker в основном поставляется в двух версиях, в Community и ENterprise.
Community версия поставляется с бесплатным набором продуктов Docker. ENterprise корпоративная версия представляет собой сертифицированную контейнерную платформу, которая предоставляет коммерческим пользователям дополнительные функции, такие как безопасность образов, управление образами, оркестровка и управление средой выполнения контейнеров, но по разумной цене.
Мы начнем наше обучение с Community Edition. Контейнеры Docker, работающие в конкретной операционной системе, совместно используют ядро ОС. Это означает, что мы не можем использовать ядро Windows (хост) для запуска контейнеров Linux или наоборот. Чтобы проделать это, у нас есть Docker Desktop для Windows и MAC.
Выпуски Docker Desktop
Docker Desktop выпускается в двух вариантах.
- Stable: как видно из названия, стабильный выпуск тщательно протестирован и может быть использован при разработке более надежных приложений. Его версии полностью синхронизированы с версиями Docker Engine.
- Edge: эти версии состоят из всех новых и экспериментальных функций Docker Engine. Есть больше шансов ошибок, сбоев и проблем, которые могут возникнуть. Тем не менее, пользователи получат возможность ознакомиться с предстоящими функциями.
Docker на Windows
Есть два варианта Docker на Windows.
1. Использование Docker Toolbox
Docker Toolbox предоставляет набор легких инструментов.
- Oracle virtual box
- Docker Engine
- Docker Machine
- Docker compose
- Kitematic GUI
Вышеуказанные инструменты устраняют необходимость развертывания отдельной виртуальной машины для запуска Docker. Просто установите исполняемый файл панели инструментов Docker непосредственно в Windows и начните разработку приложений. Требуется 64-битная ОС и Windows 7 или выше с включенным режимом виртуализации.
Но опять же, панель инструментов Docker — это оригинальная поддержка, предоставляемая в Windows для запуска Docker и его устаревшего решения для всех ОС Windows, которые не соответствуют требуемой конфигурации.
2. Использование Docker Desktop
Docker Desktop — это новейшая технология, используемая для Docker в Windows. Он заменяет виртуальную машину Oracle собственной технологией виртуализации, доступной в Windows, то есть Microsoft Hyper-V.
Он по-прежнему будет запускать Docker на Linux-машине, созданной под ним. Но на этот раз вместо виртуальной машины Oracle мы использовали нативный Microsoft Hyper-V.
Установка Docker на Windows
- Windows 10 или Windows Server 2016 Professional или Enterprise Edition
- Поддержка Hyper-V.
Чтобы запустить Hyper-V, оборудование должно соответствовать следующим требованиям:
- 64-битный процессор
- > = 4 ГБ ОЗУ
- Поддержка виртуализации оборудования на уровне BIOS
Следовательно, программная и аппаратная зависимость заключается в запуске Docker Desktop на Windows.
Установка Docker на macOS
- MAC Hardware 2010 или новее с аппаратной поддержкой управления памятью и неограниченным режимом. Выполните команду kern.hv_support, чтобы проверить, поддерживает ли оборудование MAC инфраструктуру гипервизора.
- MAC OS версии 10.13 или новее.
- > = 4 ГБ ОЗУ
- Virtual-Box до версии 4.3.30
Работа с образами
После установки проверьте версию установленного Docker Engine.
Docker работает с доставкой и запуском контейнерных приложений. Вам либо нужно создать свое собственное контейнерное приложение, либо Docker поддерживает контейнерные образы в Docker Hub, и его можно легко загрузить с помощью простой команды docker run .
Здесь мы будем тянуть образ Redis.
С помощью простой команды run образы можно скачивать и загружать на GitHub или Docker Hub, и любой пользователь во всем мире может получить к нему доступ и начать работать с ним.
Docker Container запускает образ Docker. Следующим шагом является запуск контейнера.
Будет создан зашифрованный идентификатор контейнера. Вы можете быстро проверить состояние работающего экземпляра в Docker, нажав на Dashboard option.
Обязательно остановите контейнер, прежде чем удалять его из Docker Engine.
Возможности Docker Desktop
Существует множество преимуществ:
- Поддерживает широкий спектр инструментов разработки.
- Обеспечьте быстрый и оптимизированный способ создания и публикации контейнерного образа на любой облачной платформе.
- Простота установки и настройки полной среды Docker
- Повышение производительности благодаря встроенной виртуализации Hyper-V для Windows и HyperKit для MAC.
- Возможность работать в Linux через WSL 2 на компьютерах с Windows.
- Легкий доступ к работающим контейнерам в локальной сети.
- Возможность поделиться любым приложением на облачной платформе, на разных языках и в разных средах.
- Для обеспечения безопасности и актуальности выполняются автоматические обновления.
- Включены последние версии Kubernetes.
- Возможность переключения между Linux и Windows сервером на Windows.
Что такое Docker? What is Docker?
Docker — это проект с открытым исходным кодом для автоматизации развертывания приложений в виде переносимых автономных контейнеров, выполняемых в облаке или локальной среде. Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers that can run on the cloud or on-premises. Одновременно с этим, Docker — это компания, которая разрабатывает и продвигает эту технологию в сотрудничестве с поставщиками облачных служб, а также решений Linux и Windows, включая корпорацию Майкрософт. Docker is also a company that promotes and evolves this technology, working in collaboration with cloud, Linux, and Windows vendors, including Microsoft.
Рис. 2-2. Figure 2-2. Docker развертывает контейнеры на всех уровнях гибридного облака. Docker deploys containers at all layers of the hybrid cloud.
Контейнеры Docker могут работать в любой среде, например в локальном центре обработки данных, в службе стороннего поставщика или в облаке Azure. Docker containers can run anywhere, on-premises in the customer datacenter, in an external service provider or in the cloud, on Azure. Контейнеры образов Docker работают в исходном формате в Linux и Windows. Docker image containers can run natively on Linux and Windows. Но образы Windows будут выполняться только на узлах Windows, тогда как образы Linux — на узлах Linux или Windows (на данный момент с помощью виртуальной машины Linux Hyper-V). Термин «узлы» здесь означает физические серверы и виртуальные машины. However, Windows images can run only on Windows hosts and Linux images can run on Linux hosts and Windows hosts (using a Hyper-V Linux VM, so far), where host means a server or a VM.
Разработчики могут использовать среды разработки на базе Windows, Linux или macOS. Developers can use development environments on Windows, Linux, or macOS. На компьютере разработчика выполняется узел Docker, где развернуты образы Docker с создаваемым приложением и всеми его зависимостями. On the development computer, the developer runs a Docker host where Docker images are deployed, including the app and its dependencies. Разработчики, работающие в Linux или macOS, могут использовать узел Docker на базе Linux и создавать образы только для контейнеров Linux. Developers who work on Linux or on macOS use a Docker host that is Linux based, and they can create images only for Linux containers. (В macOS разработчики могут изменять код приложения и запускать интерфейс командной строки Docker, но на момент написания этой статьи запуск контейнеров непосредственно в macOS не поддерживается.) В Windows разработчики могут создавать образы для контейнеров Linux или Windows. (Developers working on macOS can edit code or run the Docker CLI from macOS, but as of the time of this writing, containers don’t run directly on macOS.) Developers who work on Windows can create images for either Linux or Windows Containers.
Docker предоставляет версию Docker Community Edition (CE) для Windows или macOS, которая позволяет размещать контейнеры в среде разработки и предоставляет дополнительные средства разработки. To host containers in development environments and provide additional developer tools, Docker ships Docker Community Edition (CE) for Windows or for macOS. Оба продукта устанавливают необходимую виртуальную машину (узел Docker) для размещения контейнеров. These products install the necessary VM (the Docker host) to host the containers. Docker также предлагает версию Docker Enterprise Edition (EE), которая предназначена для корпоративных разработчиков и ИТ-отделов, которые создают, распространяют и выполняют крупные и критически важные приложения в рабочей среде. Docker also makes available Docker Enterprise Edition (EE), which is designed for enterprise development and is used by IT teams who build, ship, and run large business-critical applications in production.
Для выполнения контейнеров Windows есть среды выполнения двух типов: To run Windows Containers, there are two types of runtimes:
Контейнеры Windows Server изолируют приложение с помощью технологии изоляции процесса и пространства имен. Windows Server Containers provide application isolation through process and namespace isolation technology. Контейнер Windows Server использует ядро совместно с узлом контейнеров и всеми остальными контейнерами на узле. A Windows Server Container shares a kernel with the container host and with all containers running on the host.
Контейнеры Hyper-V увеличивают изоляцию, обеспеченную контейнерами Windows Server, запуская каждый контейнер в оптимизированной виртуальной машине. Hyper-V Containers expand on the isolation provided by Windows Server Containers by running each container in a highly optimized virtual machine. В этой конфигурации ядро узла контейнера не используется совместно с контейнерами Hyper-V, что улучшает изоляцию. In this configuration, the kernel of the container host isn’t shared with the Hyper-V Containers, providing better isolation.
Образы для этих контейнеров создаются и работают одинаково. The images for these containers are created the same way and function the same. Различие заключается лишь в том, что для создания контейнера из образа с контейнером Hyper-V нужен дополнительный параметр. The difference is in how the container is created from the image running a Hyper-V Container requires an extra parameter. Дополнительные сведения см. в разделе Контейнеры Hyper-V. For details, see Hyper-V Containers.
Сравнение контейнеров Docker с виртуальными машинами Comparing Docker containers with virtual machines
На рисунке 2-3 показано сравнение между виртуальными машинами и контейнерами Docker. Figure 2-3 shows a comparison between VMs and Docker containers.
Виртуальные машины Virtual Machines | Контейнеры Docker Docker Containers |
---|---|
Виртуальные машины содержат приложение, необходимые библиотеки или двоичные файлы и всю операционную систему. Virtual machines include the application, the required libraries or binaries, and a full guest operating system. Полная виртуализация требует больше ресурсов, чем создание контейнеров. Full virtualization requires more resources than containerization. | Контейнеры включают в себя приложение и все его зависимости. Containers include the application and all its dependencies. Но они используют ядро ОС совместно с другими контейнерами, которые выполняются в изолированных процессах в пользовательском пространстве операционной системы узла. However, they share the OS kernel with other containers, running as isolated processes in user space on the host operating system. (Это не относится к контейнерам Hyper-V, где каждый контейнер запускается на отдельной виртуальной машине.) (Except in Hyper-V containers, where each container runs inside of a special virtual machine per container.) |
Рис. 2-3. Figure 2-3. Сравнение традиционных виртуальных машин с контейнерами Docker Comparison of traditional virtual machines to Docker containers
Для виртуальных машин на сервере узла создается три базовых уровня: самый нижний инфраструктурный слой; затем операционная система узла и низкоуровневая оболочка; и поверх этого каждая виртуальная машина использует собственную ОС и все необходимые библиотеки. For VMs, there are three base layers in the host server, from the bottom-up: infrastructure, Host Operating System and a Hypervisor and on top of all that each VM has its own OS and all necessary libraries. Для Docker сервер узла предоставляет только инфраструктуру и операционную систему, а также ядро контейнеров, которое изолирует контейнер с использованием базовых служб операционной системы. For Docker, the host server only has the infrastructure and the OS and on top of that, the container engine, that keeps container isolated but sharing the base OS services.
Так как контейнеры требуют гораздо меньше ресурсов (например, им не нужна полная ОС), их проще развертывать и они быстрее запускаются. Because containers require far fewer resources (for example, they don’t need a full OS), they’re easy to deploy and they start fast. Это позволяет повысить плотность развертываний, то есть запустить на одной единице оборудования больше служб и сократить затраты на них. This allows you to have higher density, meaning that it allows you to run more services on the same hardware unit, thereby reducing costs.
Запуск на одном ядре приводит к тому, что уровень изоляции будет ниже, чем на виртуальных машинах. As a side effect of running on the same kernel, you get less isolation than VMs.
Основная цель образа — привести среду (зависимости) к единообразию в различных развертываниях. The main goal of an image is that it makes the environment (dependencies) the same across different deployments. Это означает, что вы можете отладить образ на одном компьютере, а затем развернуть его на другом компьютере и получить ту же среду. This means that you can debug it on your machine and then deploy it to another machine with the same environment guaranteed.
Образ контейнера — это способ упаковки приложения или службы для надежного и воспроизводимого развертывания. A container image is a way to package an app or service and deploy it in a reliable and reproducible way. Можно сказать, что Docker является не только технологией, но еще философией и процессом. You could say that Docker isn’t only a technology but also a philosophy and a process.
При работе с Docker разработчики никогда не жалуются, что приложение работает только на локальном компьютере, но не в рабочей среде. When using Docker, you won’t hear developers say, «It works on my machine, why not in production?» Им достаточно сказать «Выполняется в Docker», так как упакованное приложение Docker будет выполняться в любой поддерживаемой среде Docker. Оно будет работать одинаково во всех сценариях развертывания (разработка, контроль качества, промежуточное размещение и рабочая среда). They can simply say, «It runs on Docker», because the packaged Docker application can be executed on any supported Docker environment, and it runs the way it was intended to on all deployment targets (such as Dev, QA, staging, and production).
Простая аналогия A simple analogy
Возможно, небольшая аналогия поможет вам быстрее освоить ключевую концепцию Docker. Perhaps a simple analogy can help getting the grasp of the core concept of Docker.
Вернемся ненадолго назад во времени, в 1950-е годы. Let’s go back in time to the 1950s for a moment. Тогда еще не было текстовых редакторов, и повсеместно использовались фотокопировальные устройства (то есть то, что тогда так называлось). There were no word processors, and the photocopiers were used everywhere (kind of).
Представьте, что вам понадобилось быстро подготовить наборы писем, чтобы отправить их с обычной бумажной почтой в настоящих конвертах с марками и доставить по домашнему адресу клиента (не забывайте, еще не существует электронной почты). Imagine you’re responsible for quickly issuing batches of letters as required, to mail them to customers, using real paper and envelopes, to be delivered physically to each customer’s address (there was no email back then).
В какой-то момент вы понимаете, что каждое письмо составлено из широкого набора абзацев, которые выбираются и упорядочиваются по мере необходимости с учетом назначения письма. Вы создаете систему, которая быстро создает нужные письма, и обоснованно надеетесь на существенную прибавку. At some point, you realize the letters are just a composition of a large set of paragraphs, which are picked and arranged as needed, according to the purpose of the letter, so you devise a system to issue letters quickly, expecting to get a hefty raise.
Вы создали простую систему со следующим алгоритмом: The system is simple:
У вас есть пачка прозрачных листов, каждый из которых содержит один абзац. You begin with a deck of transparent sheets containing one paragraph each.
Чтобы подготовить комплект писем, вы отбираете листы с нужными абзацами, собираете их в стопку и выравниваете так, чтобы все правильно читалось. To issue a set of letters, you pick the sheets with the paragraphs you need, then you stack and align them so they look and read fine.
Теперь вы помещаете готовый набор в фотокопировальное устройство и нажмите кнопку запуска, чтобы изготовить нужное количество копий. Finally, you place the set in the photocopier and press start to produce as many letters as required.
Это и есть основная концепция Docker в упрощенной форме. So, simplifying, that’s the core idea of Docker.
В Docker каждый слой представляет некоторый набор изменений, которые применяются к файловой системе после выполнения команды, такой как установка программы. In Docker, each layer is the resulting set of changes that happen to the filesystem after executing a command, such as, installing a program.
Если вы «посмотрите» на файловую систему после копирования очередного слоя, вы увидите все файлы в том состоянии, которое они приняли после установки программы. So, when you «look» at the filesystem after the layer has been copied, you see all the files, included the layer when the program was installed.
Такой образ можно рассматривать как дополнительный жесткий диск, доступный только для чтения, который готов к установке на «компьютер» с уже установленной операционной системой. You can think of an image as an auxiliary read-only hard disk ready to be installed in a «computer» where the operating system is already installed.
Соответственно, роль «компьютера» здесь выполняет контейнер, в который устанавливается жесткий диск этого образа. Similarly, you can think of a container as the «computer» with the image hard disk installed. Контейнер, как и обычный компьютер, можно включать и отключать. The container, just like a computer, can be powered on or off.