{"id":52293,"date":"2019-11-05T00:00:00","date_gmt":"2019-11-04T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl"},"modified":"2020-02-18T13:59:59","modified_gmt":"2020-02-18T10:59:59","slug":"razrabotka-s-docker-na-windows-subsystem-for-linux-wsl","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl","title":{"rendered":"Sviluppo con Docker su Windows Subsystem for Linux (WSL)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Sviluppo con Docker su Windows Subsystem for Linux (WSL)\" src=\"\/wp-content\/uploads\/2019\/11\/8b57f485d965eda4f8179ce6a72da724.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Per utilizzare appieno il progetto su Docker in WSL, \u00e8 necessaria l'installazione di WSL 2. Al momento della scrittura di queste note, il suo utilizzo \u00e8 possibile solo partecipando al programma di valutazione di Windows (WSL 2 \u00e8 disponibile nelle versioni 18932 e superiori). \u00c8 importante notare che \u00e8 necessaria una versione di Windows 10 Pro per installare e configurare Docker Desktop.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Primi passi<\/h3>\n<p><\/p>\n<p>Dopo essere entrati nel programma di anteprima e aver installato gli aggiornamenti, \u00e8 necessario installare una distribuzione Linux (in questo esempio si utilizza Ubuntu 18.04) e Docker Desktop con WSL 2 Tech Preview:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/docker-for-windows\/wsl-tech-preview\/\">Docker Desktop WSL 2 Tech Preview<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/store\/productId\/9N9TNGVNDL3Q\">Ubuntu 18.04 da Windows Store<\/a><\/noindex><\/li>\n<\/ol>\n<p><\/p>\n<p>In entrambi i casi, seguiamo tutte le istruzioni per l'installazione e la configurazione.<\/p>\n<p><\/p>\n<h3>Installazione della distribuzione Ubuntu 18.04<\/h3>\n<p><\/p>\n<p>Prima di avviare Ubuntu 18.04, \u00e8 necessario abilitare Windows WSL e Windows Virtual Machine Platform eseguendo due comandi in PowerShell:<\/p>\n<p><\/p>\n<ol>\n<li><code>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux<\/code> (richieder\u00e0 il riavvio del computer)<\/li>\n<li><code>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform<\/code><\/li>\n<\/ol>\n<p><\/p>\n<p>Successivamente, \u00e8 necessario assicurarsi di utilizzare WSL v2. Per fare ci\u00f2, nel terminale WSL o PowerShell, eseguiamo consecutivamente i comandi:<\/p>\n<p><\/p>\n<ul>\n<li><code>wsl -l -v<\/code> \u2014 controlliamo quale versione \u00e8 attualmente installata. Se \u00e8 1, procediamo con l'elenco<\/li>\n<li><code>wsl --set-version ubuntu 18.04 2<\/code> \u2014 per l'aggiornamento alla versione 2<\/li>\n<li><code>wsl -s ubuntu 18.04<\/code> \u2014 impostiamo Ubuntu 18.04 come distribuzione predefinita<\/li>\n<\/ul>\n<p><\/p>\n<p>Ora possiamo avviare Ubuntu 18.04, configurare (specificare nome utente e password).<\/p>\n<p><\/p>\n<h3>Installazione di Docker Desktop<\/h3>\n<p><\/p>\n<p>Durante il processo di installazione seguiamo le istruzioni. Il computer richieder\u00e0 un riavvio dopo l'installazione e al primo avvio per abilitare Hyper-V (il quale \u00e8 necessario per l'ultima versione di Windows 10 Pro).<\/p>\n<p><\/p>\n<p><b>Attenzione!<\/b> Se Docker Desktop riporta un blocco da parte del firewall, andiamo nelle impostazioni dell'antivirus e apportiamo le seguenti modifiche alle regole del firewall (in questo esempio utilizziamo Kaspersky Total Security):<\/p>\n<p><\/p>\n<ul>\n<li>Andiamo su Impostazioni -&gt; Protezione -&gt; Firewall -&gt; Configura regole del pacchetto -&gt; Local Service (TCP) -&gt; Modifica<\/li>\n<li>Dalla lista delle porte locali eliminiamo la porta 445<\/li>\n<li>Salva<\/li>\n<\/ul>\n<p><\/p>\n<p>Dopo aver avviato Docker Desktop, dal suo menu di contesto selezioniamo l'opzione WSL 2 Tech Preview.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Sviluppo con Docker su Windows Subsystem for Linux (WSL)\" src=\"\/wp-content\/uploads\/2019\/11\/ecd4557904a45f98f2b9147a4e28e23a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Nella finestra che si apre, facciamo clic sul pulsante Inizia.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Sviluppo con Docker su Windows Subsystem for Linux (WSL)\" src=\"\/wp-content\/uploads\/2019\/11\/5a0fa02cd1fd5358294a1de8ded32e9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Ora docker e docker-compose sono disponibili all'interno della distribuzione WSL.<\/p>\n<p><\/p>\n<p><b>Attenzione!<\/b> Nella nuova versione di Docker Desktop, \u00e8 ora disponibile una scheda per WSL all'interno della finestra delle impostazioni. Qui si attiva il supporto per WSL.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Sviluppo con Docker su Windows Subsystem for Linux (WSL)\" src=\"\/wp-content\/uploads\/2019\/11\/31c015662c95156ddb2aa7a1a4de5f57.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><b>Attenzione!<\/b> Oltre a selezionare l'attivazione di WSL, \u00e8 necessario attivare la propria distribuzione WSL nella scheda Risorse -&gt; Integrazione WSL.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Sviluppo con Docker su Windows Subsystem for Linux (WSL)\" src=\"\/wp-content\/uploads\/2019\/11\/89a95a3bbf12201de13f6d80797e566c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Avvio<\/h3>\n<p><\/p>\n<p>\u00c8 stata una sorpresa scoprire i numerosi problemi che sono emersi nel tentativo di avviare i contenitori dei progetti situati nella directory utente di Windows.<\/p>\n<p><\/p>\n<p>Vari errori riguardanti l'esecuzione di script bash (che di solito si avviano durante la costruzione dei contenitori per installare le librerie e le distribuzioni necessarie) e altre cose comuni nello sviluppo su Linux, hanno portato a riflettere sulla possibilit\u00e0 di posizionare i progetti direttamente nella directory utente di Ubuntu 18.04.<\/p>\n<p>.<\/p>\n<p>Dalla soluzione del problema precedente scaturisce la questione di come lavorare con i file del progetto tramite un IDE installato su Windows. Come 'best practice', ho trovato per me un'unica opzione: lavorare tramite VSCode (anche se sono un fan di PhpStorm).<\/p>\n<p><\/p>\n<p>Dopo aver scaricato e installato VSCode, \u00e8 fondamentale installare l'estensione <noindex><a rel=\"nofollow\" href=\"https:\/\/aka.ms\/vscode-remote\/download\/extension\">pacchetto di estensioni per Sviluppo Remoto<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dopo aver installato l'estensione sopra menzionata, \u00e8 sufficiente eseguire il comando <code>code .<\/code> nella directory del progetto quando VSCode \u00e8 in esecuzione.<\/p>\n<p><\/p>\n<p>In questo esempio, per accedere ai container tramite il browser \u00e8 necessario nginx. Installalo tramite <code>sudo apt-get install nginx<\/code> non \u00e8 stato cos\u00ec semplice. Per cominciare, \u00e8 stato necessario aggiornare la distribuzione WSL eseguendo <code>sudo apt update &amp;&amp; sudo apt dist-upgrade<\/code>, e solo dopo questo avviare l'installazione di nginx.<\/p>\n<p><\/p>\n<p><b>Attenzione!<\/b> Tutti i domini locali non sono registrati nel file \/etc\/hosts della distribuzione Linux (non esiste nemmeno), ma nel file hosts (solitamente situato in C:\\Windows\\System32\\drivers\\etc\\hosts) di Windows 10.<\/p>\n<p><\/p>\n<h4>Fonti<\/h4>\n<p><\/p>\n<p>Una descrizione pi\u00f9 dettagliata di ogni passaggio pu\u00f2 essere trovata qui:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/code.visualstudio.com\/docs\/remote\/wsl\">https:\/\/code.visualstudio.com\/docs\/remote\/wsl<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/docker-for-windows\/wsl-tech-preview\/\">https:\/\/docs.docker.com\/docker-for-windows\/wsl-tech-preview\/<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/docker-for-windows\/\">https:\/\/docs.docker.com\/docker-for-windows\/<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/windows\/wsl\/wsl2-install\">https:\/\/docs.microsoft.com\/ru-ru\/windows\/wsl\/wsl2-install<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474346\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043d\u0430 docker&#8217;\u0435 \u0432 WSL \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 WSL 2. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 Windows (WSL 2 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 18932 \u0438 \u0432\u044b\u0448\u0435). \u0422\u0430\u043a \u0436\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0432\u0435\u0440\u0441\u0438\u044f Windows 10 Pro \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Docker Desktop. \u041f\u0435\u0440\u0432\u044b\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52293","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441 Docker \u043d\u0430 Windows Subsystem for Linux (WSL) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-04T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:59:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sviluppo con Docker su Windows Subsystem for Linux (WSL) | ProHoster","description":"Per un funzionamento completo con.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441 Docker \u043d\u0430 Windows Subsystem for Linux (WSL) | ProHoster","og:description":"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/razrabotka-s-docker-na-windows-subsystem-for-linux-wsl","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-04T21:00:00+00:00","article:modified_time":"2020-02-18T10:59:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52293","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 03:10:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:56:47","updated":"2026-01-24 03:10:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/52293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=52293"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/52293\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=52293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=52293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=52293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}