Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π° docker’Π΅ Π² WSL Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° установка WSL 2. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π΅Π΅ использованиС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… участия Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ Windows (WSL 2 доступна Π² сборках 18932 ΠΈ Π²Ρ‹ΡˆΠ΅). Π’Π°ΠΊ ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° вСрсия Windows 10 Pro для установки ΠΈ настройки Docker Desktop.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги

ПослС вступлСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ установки ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ дистрибутив Linux (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ubuntu 18.04) ΠΈ Docker Desktop с WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 ΠΈΠ· Windows Store

Π’ ΠΎΠ±ΠΎΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… слСдуСм всСм инструкциям ΠΏΠΎ установкС ΠΈ настройкС.

Установка дистрибутива Ubuntu 18.04

ΠŸΠ΅Ρ€Π΅Π΄ запуском Ubuntu 18.04 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Windows WSL ΠΈ Windows Virtual Machine Platform посрСдством выполнСния Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

ПослС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ WSL v2. Для этого Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ WSL ΠΈΠ»ΠΈ PowerShell ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

  • wsl -l -v β€” смотрим, какая вСрсия установлСна Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Если 1, Ρ‚ΠΎ двиТСмся Π΄Π°Π»Π΅Π΅ ΠΏΠΎ списку
  • wsl --set-version ubuntu 18.04 2 β€” для обновлСния Π΄ΠΎ вСрсии 2
  • wsl -s ubuntu 18.04 β€” устанавливаСм Ubuntu 18.04 Π² качСствС дистрибутива ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ubuntu 18.04, провСсти настройку (ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ).

Установка Docker Desktop

Π’ процСссС установки слСдуСм указаниям. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСзапуск послС установки ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Hyper-V (ΠΈΠ·-Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ трСбуСтся вСрсия Windows 10 Pro).

Π’Π°ΠΆΠ½ΠΎ! Если Docker Desktop сообщит ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ со стороны firewall’Π°, ΠΈΠ΄Π΅ΠΌ Π² настройки антивируса ΠΈ вносим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² ΠΏΡ€Π°Π²ΠΈΠ»Π° сСтСвого экрана (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² качСствС антивируса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Kaspersky Total Security):

  • ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ Π² Настройки -> Π—Π°Ρ‰ΠΈΡ‚Π° -> Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ экран -> ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° -> Local Service (TCP) -> Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ
  • Из списка Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² удаляСм ΠΏΠΎΡ€Ρ‚ 445
  • Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ

ПослС запуска Docker Desktop Π² Π΅Π³ΠΎ контСкстном мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ WSL 2 Tech Preview.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Start.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ docker ΠΈ docker-compose доступны Π²Π½ΡƒΡ‚Ρ€ΠΈ дистрибутива WSL.

Π’Π°ΠΆΠ½ΠΎ! Π’ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ Docker Desktop Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠ° с WSL Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠ½Π° настроСк. Π’Π°ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° WSL.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Π’Π°ΠΆΠ½ΠΎ! Помимо Π³Π°Π»ΠΎΡ‡ΠΊΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ WSL Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Resources->WSL Integration Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°Ρˆ WSL дистрибутив.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Docker Π½Π° Windows Subsystem for Linux (WSL)

Запуск

ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ стали Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², располоТСнных Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Windows.

Ошибки Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, связанныС с запуском bash-скриптов (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ сборкС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ дистрибутивов) ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ…, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Linux, Π²Π΅Ρ‰Π΅ΠΉ, заставили Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² нСпосрСдствСнно Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ubuntu 18.04.

.

Из Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· IDE, ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π½Π° Windows. Π’ качСствС Β«best practiceΒ» я нашСл для сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Ρ€Π°Π±ΠΎΡ‚Π° посрСдством VSCode (хотя являюсь ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠΌ PhpStorm).

ПослС скачивания ΠΈ установки VSCode ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ устанавливаСм Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Remote Development extension pack.

ПослС установки Π²Ρ‹ΡˆΠ΅ упомянутого Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ достаточно просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ code . Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ VSCode.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для обращСния ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ nginx. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· sudo apt-get install nginx оказалось Π½Π΅ Ρ‚Π°ΠΊ просто. Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ дистрибутив WSL посрСдством выполнСния sudo apt update && sudo apt dist-upgrade, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установку nginx.

Π’Π°ΠΆΠ½ΠΎ! ВсС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/hosts дистрибутива Linux (Π΅Π³ΠΎ Ρ‚Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅Ρ‚), Π° Π² Ρ„Π°ΠΉΠ»Π΅ hosts (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ располоТСнном C:WindowsSystem32driversetchosts) Windows 10.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΡƒΡ‚:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com