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. Можно начинать играться.
Комментарии
Оставить комментарий могут только зарегистрированные пользователи.
Войдите на сайт или зарегистрируйтесь, чтобы оставить комментарий.