Монтирование папки docker windows

Подсистема Docker в Windows Docker Engine on Windows

Подсистема и клиент Docker не входят в состав Windows, потому их нужно устанавливать и настраивать отдельно. The Docker Engine and client aren’t included with Windows and need to be installed and configured individually. Кроме того, подсистема Docker может принимать множество пользовательских конфигураций. Furthermore, the Docker Engine can accept many custom configurations. Например, можно настроить то, как управляющая программа принимает входящие запросы, сетевые параметры по умолчанию и параметры ведения журнала и отладки. Some examples include configuring how the daemon accepts incoming requests, default networking options, and debug/log settings. В ОС Windows эти конфигурации можно указать в файле конфигурации или с помощью диспетчера служб Windows. On Windows, these configurations can be specified in a configuration file or by using Windows Service control manager. В этом документе объясняется установка и настройка подсистемы Docker; также представлены примеры некоторых часто используемых конфигураций. This document details how to install and configure the Docker Engine, and also provides some examples of commonly used configurations.

Установка Docker Install Docker

Для работы с контейнерами Windows требуется Docker. You need Docker in order to work with Windows Containers. Docker состоит из подсистемы Docker (dockerd.exe) и клиента Docker (docker.exe). Docker consists of the Docker Engine (dockerd.exe), and the Docker client (docker.exe). Самый простой способ установить все необходимые компоненты изложен в кратком руководстве, которое поможет настроить и запустить первый контейнер. The easiest way to get everything installed is in the quickstart guide, which will help you get everything set up and run your first container.

Сведения об установке с помощью сценария см. в разделе Использование сценария для установки Docker EE. For scripted installations, see Use a script to install Docker EE.

Прежде чем использовать Docker, необходимо установить образы контейнеров. Before you can use Docker, you’ll need to install the container images. Дополнительные сведения см. в документации по образам контейнеров. For more information, see docs for our container base images.

Настройка Docker с помощью файла конфигурации Configure Docker with a configuration file

Предпочтительным способом настройки подсистемы Docker в Windows является использование файла конфигурации. The preferred method for configuring the Docker Engine on Windows is using a configuration file. Путь к файлу конфигурации — C:\ProgramData\Docker\config\daemon.json. The configuration file can be found at ‘C:\ProgramData\Docker\config\daemon.json’. Если этот файл еще не существует, его можно создать. You can create this file if it doesn’t already exist.

Не все доступные параметры конфигурации Docker применяются к Docker в Windows. Not every available Docker configuration option applies to Docker on Windows. В примере ниже показаны параметры конфигурации, которые применяются. The following example shows the configuration options that do apply. Дополнительные сведения о конфигурации подсистемы Docker см. в статье Docker daemon configuration file (Файл конфигурации управляющей программы Docker). For more information about Docker Engine configuration, see Docker daemon configuration file.

Достаточно только внести необходимые изменения в файл конфигурации. You only need to add the desired configuration changes to the configuration file. Например, в этом случае подсистема Docker настраивается на прием входящих подключений через порт 2375. For example, the following sample configures the Docker Engine to accept incoming connections on port 2375. В других параметрах конфигурации будут использоваться значения по умолчанию. All other configuration options will use default values.

Аналогично в примере ниже настраивается хранение образов и контейнеров по альтернативному пути в управляющей программе Docker. Likewise, the following sample configures the Docker daemon to keep images and containers in an alternate path. Если оно не указано, по умолчанию используется значение c:\programdata\docker . If not specified, the default is c:\programdata\docker .

В примере ниже управляющая программа Docker настраивается на прием только защищенных подключений через порт 2376. The following sample configures the Docker daemon to only accept secured connections over port 2376.

Настройка Docker в службе Docker Configure Docker on the Docker service

Подсистему Docker можно также настроить, изменив службу Docker командой sc config . The Docker Engine can also be configured by modifying the Docker service with sc config . При использовании этого способа флаги подсистемы Docker задаются непосредственно в службе Docker. Using this method, Docker Engine flags are set directly on the Docker service. Выполните указанную ниже команду в командной строке (cmd.exe, не PowerShell). Run the following command in a command prompt (cmd.exe not PowerShell):

Читайте также:  Programming windows applications on linux

Не нужно выполнять эту команду в том случае, если файл daemon.json уже содержит запись «hosts»: [«tcp://0.0.0.0:2375»] . You don’t need to run this command if your daemon.json file already contains the «hosts»: [«tcp://0.0.0.0:2375»] entry.

Распространенные конфигурации Common configuration

В следующих примерах файла конфигурации представлены распространенные конфигурации Docker. The following configuration file examples show common Docker configurations. Их можно объединить в один файл конфигурации. These can be combined into a single configuration file.

Создание сети по умолчанию Default network creation

Чтобы настроить подсистему Docker таким образом, чтобы не была создана сеть NAT по умолчанию, используйте следующую конфигурацию. To configure the Docker Engine so that it doesn’t create a default NAT network, use the following configuration.

Дополнительные сведения см. в статье Управление сетями Docker. For more information, see Manage Docker Networks.

Задание группы безопасности для Docker Set Docker security group

После входа в систему на узле Docker и запуска команд Docker эти команды выполняются через именованный канал. When you’ve signed in to the Docker host and are locally running Docker commands, these commands are run through a named pipe. По умолчанию только члены группы «Администраторы» могут получить доступ к подсистеме Docker через именованный канал. By default, only members of the Administrators group can access the Docker Engine through the named pipe. Чтобы указать группу безопасности, имеющую такой доступ, используйте флаг group . To specify a security group that has this access, use the group flag.

Конфигурация прокси-сервера Proxy configuration

Чтобы задать данные о прокси-сервере для docker search и docker pull , создайте переменную среды Windows с именем HTTP_PROXY или HTTPS_PROXY и значением, содержащим данные о прокси-сервере. To set proxy information for docker search and docker pull , create a Windows environment variable with the name HTTP_PROXY or HTTPS_PROXY , and a value of the proxy information. Это можно сделать в PowerShell, используя команду следующего вида: This can be completed with PowerShell using a command similar to this:

После задания переменной перезапустите службу Docker. Once the variable has been set, restart the Docker service.

Дополнительные сведения см. в разделе Windows Configuration File (Файл конфигурации Windows) на сайте Docker.com. For more information, see Windows Configuration File on Docker.com.

Удаление Docker How to uninstall Docker

В этом разделе описывается, как удалить Docker и выполнить полную очистку компонентов системы Docker в Windows 10 или Windows Server 2016. This section will tell you how to uninstall Docker and perform a full cleanup of Docker system components from your Windows 10 or Windows Server 2016 system.

Все команды в этих инструкциях необходимо выполнять из сеанса PowerShell с повышенными привилегиями. You must run all commands in these instructions from an elevated PowerShell session.

Подготовка системы к удалению Docker Prepare your system for Docker’s removal

Перед удалением Docker убедитесь, что в системе не запущены контейнеры. Before you uninstall Docker, make sure no containers are running on your system.

Выполните следующие командлеты, чтобы найти работающие контейнеры: Run the following cmdlets to check for running containers:

Кроме того, перед удалением Docker рекомендуется удалить все контейнеры, образы контейнеров, сети и тома из системы. It’s also good practice to remove all containers, container images, networks, and volumes from your system before removing Docker. Это можно сделать, выполнив следующий командлет: You can do this by running the following cmdlet:

Удаление Docker Uninstall Docker

Затем необходимо начать собственно удаление Docker. Next, you’ll need to actually uninstall Docker.

Удаление Docker в Windows 10 To uninstall Docker on Windows 10

  • На компьютере с Windows 10 перейдите в раздел Параметры >Приложения. Go to Settings >Apps on your Windows 10 machine
  • В разделе Приложения и компоненты найдите пункт Docker для Windows Under Apps & Features, find Docker for Windows
  • Последовательно выберите Docker для Windows >Удалить. Go to Docker for Windows >Uninstall

Удаление Docker в Windows Server 2016 To uninstall Docker on Windows Server 2016:

В сеансе PowerShell с повышенными привилегиями используйте командлеты Uninstall-Package и Uninstall-Module, чтобы удалить модуль Docker и соответствующий ему поставщик Управление пакетами из системы, как показано в следующем примере: From an elevated PowerShell session, use the Uninstall-Package and Uninstall-Module cmdlets to remove the Docker module and its corresponding Package Management Provider from your system, as shown in the following example:

Вы можете найти поставщик пакетов, который использовался для установки Docker с помощью команды PS C:\> Get-PackageProvider -Name *Docker* You can find the Package Provider that you used to install Docker with PS C:\> Get-PackageProvider -Name *Docker*

Очистка данных и системных компонентов Docker Clean up Docker data and system components

После удаления Docker необходимо удалить сети Docker по умолчанию, чтобы их конфигурация не оставалась в системе после того, как Docker будет удален. After you uninstall Docker, you’ll need to remove Docker’s default networks so their configuration won’t remain on your system after Docker is gone. Это можно сделать, выполнив следующий командлет: You can do this by running the following cmdlet:

Читайте также:  Встроенный rdp клиент для windows 10

Удалите сети по умолчанию Docker в Windows Server 2016. To remove Docker’s default networks on Windows Server 2016.

Выполните следующий командлет, чтобы удалить программные данные Docker из системы: Run the following cmdlet to remove Docker’s program data from your system:

Можно также удалить необязательные компоненты Windows, связанные с Docker и контейнерами в Windows. You may also want to remove the Windows optional features associated with Docker/containers on Windows.

К ним относится компонент «Контейнеры», который автоматически включается в любом экземпляре Windows 10 или Windows Server 2016 при установке Docker. This includes the «Containers» feature, which is automatically enabled on any Windows 10 or Windows Server 2016 when Docker is installed. Это также может быть компонент «Hyper-V», который автоматически включается в Windows 10 при установке Docker, однако в Windows Server 2016 он включается вручную. It may also include the «Hyper-V» feature, which is automatically enabled on Windows 10 when Docker is installed, but must be explicitly enabled on Windows Server 2016.

Компонент Hyper-V является общим компонентом виртуализации, который обеспечивает гораздо большую функциональность, чем при использовании одних только контейнеров. The Hyper-V feature is a general virtualization feature that enables much more than just containers. Прежде чем отключить Hyper-V, убедитесь, что в системе нет других виртуальных компонентов, которые зависят от Hyper-V. Before disabling the Hyper-V feature, make sure there are no other virtualized components on your system that require Hyper-V.

Удаление компонентов Windows 10 To remove Windows features on Windows 10:

  • Выберите последовательно Панель управления >Программы >Программы и компоненты >Включение или отключение компонентов Windows. Go to Control Panel >Programs >Programs and Features >Turn Windows features on or off.
  • Найдите имя компонента, который требуется отключить — в данном случае это Контейнеры и (необязательно) Hyper-V. Find the name of the feature or features you want to disable—in this case, Containers and (optionally) Hyper-V.
  • Снимите флажок рядом с именем компонента, который нужно отключить. Uncheck the box next to the name of the feature you want to disable.
  • Нажмите кнопку ОК. Select «OK»

Удаление компонентов Windows Server 2016 To remove Windows features on Windows Server 2016:

В сеансе PowerShell с повышенными привилегиями выполните следующие командлеты, чтобы отключить компоненты Контейнеры и (необязательно) Hyper-V. From an elevated PowerShell session, run the following cmdlets to disable the Containers and (optionally) Hyper-V features from your system:

Перезагрузка системы Reboot your system

Чтобы завершить удаление компонентов и очистить систему, выполните следующий командлет из сеанса PowerShell с повышенными привилегиями для перезагрузки системы: To finish uninstallation and cleanup, run the following cmdlet from an elevated PowerShell session to reboot your system:

Изучаем Docker, часть 6: работа с данными

В сегодняшней части перевода серии материалов о Docker мы поговорим о работе с данными. В частности — о томах Docker. В этих материалах мы постоянно сравнивали программные механизмы Docker с разными съедобными аналогиями. Не будем отходить от этой традиции и здесь. Данные в Docker пусть будут специями. В мире существует множество видов специй, а в Docker — множество способов работы с данными.

Обратите внимание на то, что этот материал подготовлен с использованием движка Docker версии 18.09.1 и API версии 1.39.

Данные в Docker могут храниться либо временно, либо постоянно. Начнём с временных данных.

Временное хранение данные

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

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

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

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

Постоянное хранение данных

Существуют два способа, позволяющих сделать срок жизни данных большим срока жизни контейнера. Один из способов заключается в использовании технологии bind mount. При таком подходе к контейнеру можно примонтировать, например, реально существующую папку. Работать с данными, хранящимися в такой папке, смогут и процессы, находящиеся за пределами Docker. Вот как выглядят монтирование tmpfs и технология bind mount.

Монтирование tmpfs и bind mount

Читайте также:  User agent mozilla compatible msie windows

Минусы использования технологии bind mount заключаются в том, что её использование усложняет резервное копирование данных, миграцию данных, совместное использование данных несколькими контейнерами. Гораздо лучше для постоянного хранения данных использовать тома Docker.

Тома Docker

Том — это файловая система, которая расположена на хост-машине за пределами контейнеров. Созданием и управлением томами занимается Docker. Вот основные свойства томов Docker:

  • Они представляют собой средства для постоянного хранения информации.
  • Они самостоятельны и отделены от контейнеров.
  • Ими могут совместно пользоваться разные контейнеры.
  • Они позволяют организовать эффективное чтение и запись данных.
  • Тома можно размещать на ресурсах удалённого облачного провайдера.
  • Их можно шифровать.
  • Им можно давать имена.
  • Контейнер может организовать заблаговременное наполнение тома данными.
  • Они удобны для тестирования.

Как видите, тома Docker обладают замечательными свойствами. Давайте поговорим о том, как их создавать.

Создание томов

Тома можно создавать средствами Docker или с помощью запросов к API.

Вот инструкция в Dockerfile, которая позволяет создать том при запуске контейнера.

При использовании подобной инструкции Docker, после создания контейнера, создаст том, содержащий данные, которые уже имеются в указанном месте. Обратите внимание на то, что если вы создаёте том с использованием Dockerfile, это не освобождает вас от необходимости указать точку монтирования тома.

Создавать тома в Dockerfile можно и используя формат JSON.

Кроме того, тома можно создавать средствами командной строки во время работы контейнера.

Работа с томами из командной строки

▍Создание тома

Создать самостоятельный том можно следующей командой:

▍Выяснение информации о томах

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

Исследовать конкретный том можно так:

▍Удаление тома

Удалить том можно так:

Для того чтобы удалить все тома, которые не используются контейнерами, можно прибегнуть к такой команде:

Перед удалением томов Docker запросит у вас подтверждение выполнения этой операции.

Если том связан с каким-либо контейнером, такой том нельзя удалить до тех пор, пока не удалён соответствующий контейнер. При этом, даже если контейнер удалён, Docker не всегда это понимает. Если это случилось — можете воспользоваться следующей командой:

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

Флаги —mount и —volume

Для работы с томами вам, при вызове команды docker , часто придётся пользоваться флагами. Например, для того чтобы создать том во время создания контейнера можно воспользоваться такой конструкцией:

В давние времена (до 2017 года) популярен был флаг —volume . Изначально этот флаг (ещё им можно пользоваться в сокращённом виде, тогда он выглядит как -v ) использовался для самостоятельных контейнеров, а флаг —mount — в среде Docker Swarm. Однако, начиная с Docker 17.06, флаг —mount можно использовать в любых сценариях.

Надо отметить, что при использовании флага —mount увеличивается объём дополнительных данных, которые приходится указывать в команде, но, по нескольким причинам, лучше использовать именно этот флаг, а не —volume . Флаг —mount — это единственный механизм, который позволяет работать с сервисами или указывать параметры драйвера тома. Кроме того, работать с этим флагом проще.

В существующих примерах команд, направленных на работу с данными в Docker, вы можете встретить множество примеров употребления флага -v . Пытаясь адаптировать эти команды для себя, учитывайте то, что флаги —mount и —volume используют различные форматы параметров. То есть, нельзя просто заменить -v на —mount и получить рабочую команду.

Главное различие между —mount и —volume заключается в том, что при использовании флага —volume все параметры собирают вместе, в одном поле, а при использовании —mount параметры разделяются.

При работе с —mount параметры представлены как пары вида ключ-значение, а именно, это выглядит как key=value . Эти пары разделяют запятыми. Вот часто используемые параметры —mount :

  • type — тип монтирования. Значением для соответствующего ключа могут выступать bind, volume или tmpfs. Мы тут говорим о томах, то есть — нас интересует значение volume .
  • source — источник монтирования. Для именованных томов это — имя тома. Для неименованных томов этот ключ не указывают. Он может быть сокращён до src .
  • destination — путь, к которому файл или папка монтируется в контейнере. Этот ключ может быть сокращён до dst или target .
  • readonly — монтирует том, который предназначен только для чтения. Использовать этот ключ необязательно, значение ему не назначают.

Вот пример использования —mount с множеством параметров:

Итоги

Вот полезные команды, которыми можно пользоваться при работе с томами Docker:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Вот список часто используемых параметров для —mount , применимых в команде вида docker run —mount my_options my_image :

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

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

Уважаемые читатели! Какие материалы о Docker вы посоветовали бы изучить новичкам?

Оцените статью