{"id":267,"date":"2023-10-10T10:05:18","date_gmt":"2023-10-10T08:05:18","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/?page_id=267"},"modified":"2025-02-11T14:23:44","modified_gmt":"2025-02-11T12:23:44","slug":"2-3-descarregar-contenidors-creats","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/2-3-descarregar-contenidors-creats\/","title":{"rendered":"2.3. Descarregar contenidors creats"},"content":{"rendered":"<p>En primer lloc, mirarem si tenim alguna imatge en el nostre sistema. En teoria, si \u00e9s la primera vegada que utilitzem Docker, ens hauria d\u2019apar\u00e8ixer una llista en blanc quan utilitzem:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ docker image ls<\/pre>\n<p>Comen\u00e7arem pel contenidor m\u00e9s senzill i el descarregarem directament:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ docker image pull hello-world<\/pre>\n<p>Deixarem que s&#8217;executi el proc\u00e9s de desc\u00e0rrega i, si tot ha funcionat correctament, quan repetim l\u2019ordre de llistat d\u2019imatges ens hauria d\u2019apar\u00e8ixer la imatge <code>hello-world<\/code>.<\/p>\n<p>La imatge de \u00abhello-world\u00bb procedeix de <a href=\"javascript:void(0);\" class=\"tooltip\" data-toggle=\"popover\" data-placement=\"bottom\" data-content=\"Docker Hub \u00e9s el repositori d\u2019imatges de Docker m\u00e9s ampli (<a href='https:\/\/www.docker.com\/products\/docker-hub\/' target='_blank'>https:\/\/www.docker.com\/products\/docker-hub\/<\/a>\/). Podeu crear-ne un compte per poder compartir les vostres imatges amb col\u00b7laboradors o simplement per tenir el vostre propi cat\u00e0leg. La plataforma proporciona l\u2019opci\u00f3 de tenir repositoris privats. Per poder baixar imatges p\u00fabliques no cal tenir un usuari i l\u2019ordre utilitzada \u00e9s <em>pull<\/em>, mentre que per poder penjar les vostres imatges al vostre espai s\u2019utilitzaria l\u2019ordre <em>push<\/em> pr\u00e8via autentificaci\u00f3 d\u2019usuari.\" data-placement=\"top\" data-html=\"true\" >Docker Hub<\/a>, un repositori d\u2019imatges.<\/p>\n<p>Seguidament, executarem el contenidor que es generi a partir de la imatge <code>hello-world<\/code> mitjan\u00e7ant:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ docker container run hello-world<\/pre>\n<p>Un cop executat, rebreu un missatge de part de l\u2019equip de Docker (figura 4).<\/p>\n<figure id=\"attachment_65\" aria-describedby=\"caption-attachment-65\" style=\"width: 640px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-65 size-large\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/09\/image007-1024x468.png\" alt=\"\" width=\"640\" height=\"293\" srcset=\"\/wp-content\/uploads\/sites\/6\/2023\/09\/image007-1024x468.png 1024w, \/wp-content\/uploads\/sites\/6\/2023\/09\/image007-300x137.png 300w, \/wp-content\/uploads\/sites\/6\/2023\/09\/image007-768x351.png 768w, \/wp-content\/uploads\/sites\/6\/2023\/09\/image007.png 1322w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-65\" class=\"wp-caption-text\">Figura 4. Missatge de benvinguda de l\u2019equip de Docker en executar \u00abhello-world\u00bb.<br \/>Font: elaboraci\u00f3 pr\u00f2pia.<\/figcaption><\/figure>\n<p>Quan s\u2019executa un contenidor succeeixen tres processos:<\/p>\n<ul>\n<li>S&#8217;inicialitza el contenidor a partir de la imatge.<\/li>\n<li>S\u2019executa l\u2019acci\u00f3 preestablerta del contenidor, si existeix.<\/li>\n<li>Un cop l\u2019acci\u00f3 ha finalitzat, el contenidor s&#8217;atura.<\/li>\n<\/ul>\n<p>En el cas de l\u2019exemple anterior, l\u2019acci\u00f3 preestablerta era imprimir el missatge de benvinguda, per\u00f2 l\u2019acci\u00f3 realitzada pot ser molt m\u00e9s complexa.<\/p>\n<p>A m\u00e9s de poder executar les ordres predeterminades pel contenidor, tamb\u00e9 podem passar ordres o entrar en mode interactiu. Per provar aquestes opcions executarem el contenidor Alpine que cont\u00e9 una distribuci\u00f3 d\u2019Ubuntu molt simple:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ docker container run -it alpine sh<\/pre>\n<p>En aquesta ordre utilitzem l\u2019opci\u00f3\u00a0 <code>it<\/code> per ser interactiu i\u00a0 <code>sh<\/code> ens especifica que el terminal que volem utilitzar \u00e9s <em><code>bash<\/code><\/em>.<\/p>\n<p>Veurem que la l\u00ednia d\u2019ordres canvia a:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">\/ #<\/pre>\n<p>Podrem comprovar que ara ens trobem dins d\u2019Alpine i quan executem:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">\/ #\u00a0 cat \/etc\/os-release<\/pre>\n<p>ens mostrar\u00e0 la versi\u00f3 d\u2019Alpine que ens hem baixat.<\/p>\n<p>D\u2019aquesta manera, un cop executat el contenidor no s\u2019ha finalitzat com hav\u00edem observat anteriorment, sin\u00f3 que es mant\u00e9 actiu i respon a les ordres que hi introdu\u00efm.<\/p>\n<p>Per poder sortir del contenidor i finalitzar la seva execuci\u00f3 podem introduir-hi l\u2019ordre <code>exit<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En primer lloc, mirarem si tenim alguna imatge en el nostre sistema. En teoria, si \u00e9s la primera vegada que utilitzem Docker, ens hauria d\u2019apar\u00e8ixer una llista en blanc quan utilitzem: $ docker image ls Comen\u00e7arem pel contenidor m\u00e9s senzill i el descarregarem directament: $ docker image pull hello-world Deixarem que s&#8217;executi el proc\u00e9s de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/267"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/comments?post=267"}],"version-history":[{"count":7,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/267\/revisions"}],"predecessor-version":[{"id":447,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/pages\/267\/revisions\/447"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/entornos-y-contenedores\/wp-json\/wp\/v2\/media?parent=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}