{"id":2016,"date":"2018-07-05T09:48:10","date_gmt":"2018-07-05T08:48:10","guid":{"rendered":"https:\/\/www.giannifavilli.it\/blog\/?p=2016"},"modified":"2022-01-14T16:02:35","modified_gmt":"2022-01-14T15:02:35","slug":"docker-comandi-utili","status":"publish","type":"post","link":"https:\/\/www.giannifavilli.it\/blog\/docker-comandi-utili\/","title":{"rendered":"Docker, comandi utili"},"content":{"rendered":"<p>Docker \u00e8 un sistema di <em>containerizzazione<\/em> di applicativi e sistemi operativi. Il contenuto di questo articolo \u00e8 una mera lista di comandi utili che spesso vengono utilizzati per l&#8217;interazione. Per approfondimenti sul progetto Docker, le funzionalit\u00e0 e le potenzialit\u00e0, sono riportati dei link in calce all&#8217;articolo.<!--more--><\/p>\n<ol>\n<li><code>docker ps<\/code> visualizza la lista dei container attivi. Aggiungendo l&#8217;argomento <code>-a<\/code> visualizza tutti i container attivi e non<\/li>\n<li><code>docker stop {CONTAINER}<\/code> ferma container<\/li>\n<li><code>docker rm {CONTAINER}<\/code> elimina container (NB deve essere precedentemente fermato)<\/li>\n<li><code>docker logs {CONTAINER}<\/code> log del container (NB bastano i prime 3\/4 caratteri alfanumerici dell&#8217;id container)<\/li>\n<li><code>docker logs --follow {CONTAINER}<\/code> simile al tail dei log<\/li>\n<li><code>docker images<\/code> lista immagini sul sistema<\/li>\n<li><code>docker volume ls<\/code> lista dei volumi registrati sull&#8217;host<\/li>\n<li><code>docker exec -it {CONTAINER} {COMMAND}<\/code> esegue comando os (bash\/sh) dentro il container<\/li>\n<li><code>docker attach {CONTAINER}<\/code> entri nel terminal del container (per uscire <code>CTRL + P CTRL + Q<\/code> altrimenti fermi il container)<\/li>\n<li><code>docker rmi {IMAGE}<\/code> elimina la docker image (NB non devono essere connessi container attivi)<\/li>\n<li><code>docker start {CONTAINER}<\/code> avvia il container creato in precedenza<\/li>\n<li><code>docker inspect {CONTAINER}<\/code> restituisce tutti i parametri di sistema del container<\/li>\n<li><code>docker build -t {IMAGE} .<\/code> crea immagine con il nome <code>IMAGE<\/code> (<code>.<\/code> sta a significare che siamo all&#8217;interno del repo dal quale creare l&#8217;immagine)<\/li>\n<\/ol>\n<h3>Qualche trucchetto utile<\/h3>\n<ul>\n<li><code>docker volume prune<\/code> rimuove tutti i volumi non pi\u00f9 usati dai container che sono stati rimossi<\/li>\n<li><code>docker volume rm $(docker volume ls -q)<\/code> rimuove tutti i volumi, anche quelli in uso, quindi OCCHIO! (NB nei volumi sono contenute tutti i dati usati dai container, rimuovendoli i dati andranno perduti. Fare attenzione se si utilizzano per base dati)<\/li>\n<li><code>docker rm -v $(docker ps -q)<\/code> rimuove tutti i container attivi e i volumi a loro associati<\/li>\n<li><code>docker rm -f $(docker ps -a -q)<\/code> rimuove tutti i container, anche quelli in esecuzione<\/li>\n<li><code>docker rm -f -v $(docker ps -a -q)<\/code> rimuove tutti i container attivi e non e i volumi a loro associati<\/li>\n<li><code>docker rmi $(docker images -q)<\/code> rimuove tutte le immagini In caso di conflitto o errori l&#8217;operazione viene interrotta<\/li>\n<li><code>docker rmi -f $(docker images -q)<\/code> rimuove tutte le immagini anche quelle associate a container attivi<\/li>\n<li><code>docker exec -it {CONTAINER} bash<\/code> si entra nel container con il terminale (bash) a riga di comando<\/li>\n<li>Per puntare tramite ID un container o un immagine non c&#8217;\u00e8 bisogno di scrivere tutto l&#8217;identificativo alfanumerico, basta scrivere solo i primi caratteri (2 o 3 di solito sono sufficienti)<\/li>\n<\/ul>\n<h3>Riferimenti<\/h3>\n<p>Lista ufficiale comandi docker<br \/>\n<a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/docker\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.docker.com\/engine\/reference\/commandline\/docker\/<\/a><\/p>\n<p>Martin Fowler &#8211; Microservices<br \/>\nhttps:\/\/www.martinfowler.com\/articles\/microservices.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker \u00e8 un sistema di containerizzazione di applicativi e sistemi operativi. Il contenuto di questo articolo \u00e8 una mera lista di comandi utili che spesso vengono utilizzati per l&#8217;interazione. Per approfondimenti sul progetto Docker, le funzionalit\u00e0 e le potenzialit\u00e0, sono riportati dei link in calce all&#8217;articolo.<\/p>\n","protected":false},"author":2,"featured_media":2020,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3,17],"tags":[73],"class_list":["post-2016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatica","category-programmazione","tag-docker"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.giannifavilli.it\/blog\/wp-content\/uploads\/2018\/07\/Docker-logo-011.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4SGGs-ww","_links":{"self":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/2016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/comments?post=2016"}],"version-history":[{"count":0,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/posts\/2016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/media\/2020"}],"wp:attachment":[{"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/media?parent=2016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/categories?post=2016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giannifavilli.it\/blog\/wp-json\/wp\/v2\/tags?post=2016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}