{"id":2325,"date":"2024-09-28T02:54:37","date_gmt":"2024-09-28T00:54:37","guid":{"rendered":"https:\/\/alessandromasciadri.com\/?p=2325"},"modified":"2024-09-28T03:08:10","modified_gmt":"2024-09-28T01:08:10","slug":"come-installare-il-docker-engine-su-ubuntu","status":"publish","type":"post","link":"https:\/\/alessandromasciadri.com\/come-installare-il-docker-engine-su-ubuntu\/","title":{"rendered":"Come installare il Docker engine su Ubuntu"},"content":{"rendered":"\t\t<div data-akihiro-type=\"ama-post\" data-akihiro-id=\"2325\" class=\"akihiro akihiro-2325\" data-akihiro-post-type=\"post\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-abb08ea e-flex e-con-boxed e-con e-parent\" data-id=\"abb08ea\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4904928 akihiro-widget akihiro-widget-text-editor\" data-id=\"4904928\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\tL&#8217;installazione di Docker pu\u00f2 essere fatta sia tramite <code>snap<\/code> che tramite <code>apt<\/code>. Certamente l&#8217;installazione via <code>snap<\/code> \u00e8 il metodo pi\u00f9 rapido e permette con un solo e semplice comando di essere immediatamente operativi, ma \u00e8 necessario fare delle considerazioni di fondo e valutare le differenze dei due metodi di installazione. Approfondiamo quindi l&#8217;argomento.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-804088c akihiro-widget akihiro-widget-heading\" data-id=\"804088c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Installazione tramite apt<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ced0c38 akihiro-widget akihiro-widget-text-editor\" data-id=\"ced0c38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La prima cosa da fare \u00e8 aggiungere il repository ufficiale di Docker. Eseguiamo quindi questi primi propedeutici comandi:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-df60840 akihiro-widget akihiro-widget-code-highlight\" data-id=\"df60840\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>sudo apt update\nsudo apt install ca-certificates curl\nsudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-da1f17e akihiro-widget akihiro-widget-text-editor\" data-id=\"da1f17e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Per poi procedere all&#8217;effettiva aggiunta del repository:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-cf162cd akihiro-widget akihiro-widget-code-highlight\" data-id=\"cf162cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>echo \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc] https:\/\/download.docker.com\/linux\/ubuntu \\\n  $(. \/etc\/os-release && echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4189d4f akihiro-widget akihiro-widget-text-editor\" data-id=\"4189d4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ed aggiornare quindi la cache di apt<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-3811402 akihiro-widget akihiro-widget-code-highlight\" data-id=\"3811402\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>sudo apt update<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4e96331 akihiro-widget akihiro-widget-text-editor\" data-id=\"4e96331\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Siamo quindi pronti per lanciare l&#8217;installazione. Con questo comando installiamo l&#8217;ultima versione disponibile:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e29f3b2 akihiro-widget akihiro-widget-code-highlight\" data-id=\"e29f3b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-101d957 akihiro-widget akihiro-widget-heading\" data-id=\"101d957\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h4 class=\"akihiro-heading-title akihiro-size-default\">Considerazioni<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-b756f52 akihiro-widget akihiro-widget-text-editor\" data-id=\"b756f52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La prima opzione che illustro \u00e8 anche la mia preferita per tutta una serie di ragioni. Vediamole qui di seguito.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-b82ff0f akihiro-widget akihiro-widget-heading\" data-id=\"b82ff0f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Aggiornamenti diretti da Docker<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-9f2659b akihiro-widget akihiro-widget-text-editor\" data-id=\"9f2659b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Utilizzando apt, si installa Docker direttamente dai repository ufficiali di Docker, il che garantisce la ricezione di aggiornamenti e patch direttamente dal team di Docker.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-37688d3 akihiro-widget akihiro-widget-heading\" data-id=\"37688d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Migliore integrazione con il sistema<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-86b899a akihiro-widget akihiro-widget-text-editor\" data-id=\"86b899a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Docker installato tramite apt si integra meglio con il sistema operativo, in quanto non si trascina dietro le limitazioni di isolamento che sono caratteristica intrinseca di snap.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-674e115 akihiro-widget akihiro-widget-heading\" data-id=\"674e115\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Performance<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-bce867a akihiro-widget akihiro-widget-text-editor\" data-id=\"bce867a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>L&#8217;installazione via apt offre prestazioni migliori rispetto a snap poich\u00e9 non ha l&#8217;overhead dell&#8217;ambiente confinato di snap.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-be64a46 akihiro-widget akihiro-widget-heading\" data-id=\"be64a46\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Personalizzazione<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-a409e26 akihiro-widget akihiro-widget-text-editor\" data-id=\"a409e26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>L&#8217;installazione via apt permette pi\u00f9 flessibilit\u00e0 nel configurare Docker a livello di sistema.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-f9bc865 akihiro-widget akihiro-widget-heading\" data-id=\"f9bc865\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Installazione tramite snap<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-a06141c akihiro-widget akihiro-widget-text-editor\" data-id=\"a06141c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Il comando da lanciare \u00e8 tanto breve quanto semplice:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-a0f4994 akihiro-widget akihiro-widget-code-highlight\" data-id=\"a0f4994\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>snap install docker<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-0e107a0 akihiro-widget akihiro-widget-heading\" data-id=\"0e107a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h4 class=\"akihiro-heading-title akihiro-size-default\">Considerazioni<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-6e2cbd7 akihiro-widget akihiro-widget-text-editor\" data-id=\"6e2cbd7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Questa seconda opzione \u00e8 certamente la pi\u00f9 semplice, ma anche quella che mi sento di <strong>non consigliare<\/strong> per server di produzione. Facciamo ora qui di seguito alcune considerazioni.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-08fa227 akihiro-widget akihiro-widget-heading\" data-id=\"08fa227\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Semplicit\u00e0 d'uso<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-7850590 akihiro-widget akihiro-widget-text-editor\" data-id=\"7850590\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<code>snap<\/code> \u00e8 progettato per essere semplice da usare e per isolare le applicazioni dal resto del sistema.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-3b1da49 akihiro-widget akihiro-widget-heading\" data-id=\"3b1da49\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Aggiornamenti automatici<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-503d52a akihiro-widget akihiro-widget-text-editor\" data-id=\"503d52a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><code>snap<\/code> aggiorna automaticamente i packages all&#8217;ultima versione, il che \u00e8 comodo se si preferisce non gestire manualmente gli aggiornamenti. Tuttavia questa scelta pu\u00f2 essere sconveniente (per non dire pericolosa) in quanto pu\u00f2 portare ad inaspettate introduzioni di bug. In generale \u00e8 una cattiva scelta se si \u00e8 in cerca di stabilit\u00e0 o si ha necessit\u00e0 di vincolarsi ad una specifica versione del Docker engine.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-a17737b akihiro-widget akihiro-widget-heading\" data-id=\"a17737b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Confinamento<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ad10a53 akihiro-widget akihiro-widget-text-editor\" data-id=\"ad10a53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\tLe applicazioni installate con <code>snap<\/code> sono isolate dal resto del sistema, il che pu\u00f2 essere utile per la sicurezza, ma pu\u00f2 causare problemi con l&#8217;accesso a risorse del sistema (es. rete o file di sistema).\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>L&#8217;installazione di Docker pu\u00f2 essere fatta sia tramite snap che tramite apt. Certamente l&#8217;installazione via snap \u00e8 il metodo pi\u00f9 rapido e permette con un solo e semplice comando di essere immediatamente operativi, ma \u00e8 necessario fare delle considerazioni di fondo e valutare le differenze dei due metodi di installazione. Approfondiamo quindi l&#8217;argomento. Installazione tramite [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[27,20,19],"class_list":["post-2325","post","type-post","status-publish","format-standard","hentry","category-programmazione","tag-docker","tag-linux","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/comments?post=2325"}],"version-history":[{"count":10,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2325\/revisions"}],"predecessor-version":[{"id":2336,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2325\/revisions\/2336"}],"wp:attachment":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/media?parent=2325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/categories?post=2325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/tags?post=2325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}