Docker для Windows. Установка.

Что такое Docker для Windows и как с этим жить?

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

Этот пост для тех, кто далек от мира Linux, кому интересен Docker для Windows, и, тех кто по какой-то причине до сих пор не вник в эту тему.

Под управлением Windows Server появился Docker лишь в Windows Server 2016. Появился он в крайне сыром виде. Почти ничего не умел и годился разве что "для посмотреть на чудо заморское". Позже выходили Windows Server version 1709, затем 1803. Все это время Docker рос. Рос-рос и вот, наконец, вышли Windows Server 2019 и Windows Server version 1809. Docker вырос. Конечно, он еще не умеет многого из того, что хотелось бы, но, того, что уже есть, достаточно для готового решения.

Подготовка к установке

Docker можно установить как на клиентскую ОС, так и на серверную ОС. Далее я буду иметь ввиду Windows 10 1809 и Windows Server 1809. Для работы Docker необходимо предварительно установить компонент системы Containers. Для Windows 10 в данном случае требуется установить Hyper-V. Для Windows Server это не является обязательным, но желательным шагом.

Установка

Поскольку Docker продолжает развиваться и в нем постоянно что-то дорабатывается, я предпочитаю использовать ночные сборки как на Windows 10, так и на Windows Server. Тем не менее рекомендовать такой подход для всех я не могу.

add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy
    {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem)
        {
            return true;
        }
    }
"@
$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Write-Host "Download packages..."
Invoke-WebRequest -Uri https://master.dockerproject.com/windows/x86_64/docker.zip -OutFile "$env:TEMP\docker.zip"
Write-Host "Update Docker Engine..."
Expand-Archive -Path "$env:TEMP\docker.zip" -DestinationPath "C:\Program Files\." -Force
[System.Environment]::SetEnvironmentVariable("PATH", "$env:PATH;C:\Program Files\Docker", "Machine")
Set-Location "C:\Program Files\Docker"
.\dockerd.exe --experimental --register-service

Write-Host "Restarting..."
Restart-Computer

Проверка работоспособности

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

docker version

получим что-то похожее

Client:
 Version:           master-dockerproject-2018-11-26
 API version:       1.40
 Go version:        go1.11.1
 Git commit:        2d692aed
 Built:             Mon Nov 26 23:50:37 2018
 OS/Arch:           windows/amd64
 Experimental:      false

Server:
 Engine:
  Version:          master-dockerproject-2018-11-26
  API version:      1.40 (minimum version 1.24)
  Go version:       go1.11.2
  Git commit:       ed37f60
  Built:            Mon Nov 26 23:59:05 2018
  OS/Arch:          windows/amd64
  Experimental:     true

Первые итоги

Итак, у нас есть Windows Server 2019 с установленным Docker. Можно начинать играться.

Комментарии

  • Виталий Лещенкоавтор#

    На текущий момент Docker вполне стабилен как под Windows Server 2019+ (version 1809), так и под Windows 10. Для установки больше не обязательно использовать ночные сборки. Вполне рабочими являются официальные сборки (Docker Engine 19.03.2).

Оставить комментарий могут только зарегистрированные пользователи.

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