Pengembangan Docker di Windows Subsystem for Linux (WSL)




Untuk sepenuhnya bekerja dengan proyek pada buruh pelabuhan di WSL, Anda perlu menginstal WSL 2. Pada saat penulisan, Anda dapat menggunakannya hanya sebagai bagian dari Program Windows Insider (WSL 2 tersedia di build 18932 dan lebih tinggi). Perlu disebutkan secara terpisah bahwa versi Windows 10 Pro diperlukan untuk menginstal dan mengkonfigurasi Docker Desktop.


Penting! WSL 2 tidak lagi membutuhkan Docker Desktop untuk Windows 10. Cara melakukannya tanpa dijelaskan di bagian Docker Pro di Ubuntu .



Langkah pertama


Setelah memasuki program evaluasi awal dan menginstal pembaruan, Anda perlu menginstal distribusi Linux (dalam contoh ini, Ubuntu 18.04 digunakan) dan Docker Desktop dengan WSL 2 Tech Preview:


  1. Pratinjau Teknis Docker Desktop WSL 2
  2. Ubuntu 18.04 dari Windows Store

Dalam kedua paragraf, kami mengikuti semua petunjuk instalasi dan konfigurasi.


Menginstal distribusi Ubuntu 18.04


Sebelum memulai Ubuntu 18.04, Anda harus mengaktifkan Windows WSL dan Windows Virtual Machine Platform dengan menjalankan dua perintah di PowerShell:


  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (memerlukan restart komputer)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Setelah Anda perlu memastikan bahwa kami akan menggunakan WSL v2. Untuk melakukan ini, di terminal WSL atau PowerShell, jalankan perintah berikut secara berurutan:


  • wsl -l -v - lihat versi mana yang saat ini diinstal. Jika 1, maka pindah lebih jauh ke bawah daftar
  • wsl --set-version ubuntu 18.04 2 - untuk meningkatkan ke versi 2
  • wsl -s ubuntu 18.04 - instal Ubuntu 18.04 sebagai distribusi default

Sekarang Anda dapat memulai Ubuntu 18.04, mengkonfigurasi (tentukan nama pengguna dan kata sandi).


Instal Docker Desktop


Penting! WSL 2 tidak lagi membutuhkan Docker Desktop untuk Windows 10. Cara melakukannya tanpa dijelaskan di bagian Docker Pro di Ubuntu .


Selama instalasi, ikuti instruksi. Komputer akan memerlukan restart setelah instalasi dan pada awalnya mulai untuk mengaktifkan Hyper-V (karena dukungan yang diperlukan, versi Windows 10 Pro diperlukan).


Penting! Jika Docker Desktop melaporkan pemblokiran oleh firewall, buka pengaturan antivirus dan buat perubahan berikut pada aturan firewall (dalam contoh ini, Kaspersky Total Security digunakan sebagai antivirus):


  • Buka Pengaturan -> Perlindungan -> Firewall -> Konfigurasikan aturan paket -> Layanan Lokal (TCP) -> Ubah
  • Hapus port 445 dari daftar port lokal
  • Simpan

Setelah memulai Docker Desktop, dalam menu konteksnya, pilih item Pratinjau Teknologi WSL 2.




Di jendela yang terbuka, klik tombol Mulai.




Sekarang docker dan docker-compose tersedia di dalam distribusi WSL.


Penting! Desktop Docker yang diperbarui sekarang memiliki tab dengan WSL di dalam jendela pengaturan. Ini termasuk dukungan untuk WSL.




Penting! Selain kotak centang aktivasi WSL, Anda juga harus mengaktifkan distribusi WSL Anda di Resources-> WSL Integration tab.




Luncurkan


Yang tak terduga adalah banyak masalah yang terjadi ketika mencoba meningkatkan wadah proyek yang terletak di direktori pengguna Windows.


Kesalahan dari berbagai jenis yang terkait dengan menjalankan skrip bash (yang biasanya dimulai ketika membuat wadah untuk menginstal perpustakaan dan distribusi yang diperlukan) dan hal-hal lain yang umum untuk pengembangan Linux membuat kami berpikir tentang menempatkan proyek secara langsung di direktori pengguna Ubuntu 18.04.

.

Dari solusi untuk masalah sebelumnya, berikut ini: cara bekerja dengan file proyek melalui IDE yang diinstal pada Windows. Sebagai "praktik terbaik", saya hanya menemukan satu opsi untuk diri saya sendiri - bekerja melalui VSCode (walaupun saya penggemar PhpStorm).


Setelah mengunduh dan menginstal VSCode, kami menginstalnya dalam paket ekstensi Pengembangan Jarak Jauh .


Setelah menginstal ekstensi di atas, jalankan perintah code . dalam direktori proyek dengan VSCode berjalan.


Dalam contoh ini, nginx diperlukan untuk mengakses kontainer melalui browser. Menginstalnya melalui sudo apt-get install nginx tidak sesederhana itu. Untuk memulai, perlu memperbarui distribusi WSL dengan melakukan sudo apt update && sudo apt dist-upgrade , dan baru kemudian memulai instalasi nginx.


Penting! Semua domain lokal terdaftar bukan di file / etc / hosts dari distribusi Linux (itu bahkan tidak ada di sana), tetapi di file host (biasanya terletak C: \ Windows \ System32 \ drivers \ etc \ hosts) di Windows 10.


Tentang Docker di Ubuntu


Seperti yang diminta oleh pengguna yang berpengetahuan luas di komentar ke catatan, buruh pelabuhan di dalam distribusi WSL 2 benar-benar fungsional. Ini memungkinkan Anda untuk tidak menginstal Docker Desktop pada Windows 10 dan menyelesaikan masalah memiliki versi Windows 10 Pro (kebutuhan Pro muncul secara tepat sehubungan dengan penggunaan Docker Desktop). Itu diinstal sesuai dengan instruksi dari situs rumah:



Jika buruh pelabuhan mulai bersumpah di daemon ketika menjalankan perintah, periksa status layanan - dalam kasus saya, seperti nginx, itu tidak mulai secara otomatis. Jalankan dengan sudo service docker start .


Jika pada saat perakitan kesalahan "Layanan gagal dibangun: cgroup: tidak dapat menemukan tujuan pemasangan cgroup: tidak diketahui" jatuh, coba solusi berikut (bukan milik saya, saya menemukan tautan di sumbernya): sudo mkdir /sys/fs/cgroup/systemd ; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd .


Bekerja dengan proyek melalui PhpStorm


Untuk memberikan kemampuan untuk bekerja dengan proyek di WSL melalui PhpStorm, Anda harus melakukan hal berikut:


  • Jalankan command prompt Windows 10 sebagai administrator;
  • Pada prompt perintah Windows 10, jalankan perintah mklink /DC:\project_directory \\wsl$\Ubuntu\home\user\project_directory , yang akan membuat tautan simbolis ke folder proyek.

Setelah itu, dalam IDE, Anda dapat membuka proyek di sepanjang jalur C: \ project_directory


PS Dmitry Simagin , terima kasih atas keputusannya.


Sumber


Penjelasan lebih rinci dari setiap langkah dapat ditemukan di sini:


Source: https://habr.com/ru/post/id474346/


All Articles