{"id":1223,"date":"2016-02-05T08:00:24","date_gmt":"2016-02-05T07:00:24","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=1223"},"modified":"2023-03-22T15:10:32","modified_gmt":"2023-03-22T14:10:32","slug":"docker-kontener-podstawowe-operacje","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/docker-kontener-podstawowe-operacje\/","title":{"rendered":"Docker: kontener, podstawowe operacje"},"content":{"rendered":"\n<p>Kontener to jedno z podstawowych poj\u0119\u0107 Dockera. Konteneryzacja pozwala na uruchomienie procesu (programu) w odizolowanym \u015brodowisku zawieraj\u0105cym wszystkie zale\u017cno\u015bci wymagane do jego dzia\u0142ania.<\/p>\n\n\n\n<p>W tym artykule zosta\u0142o zdefiniowanie poj\u0119cie kontenera oraz przedstawiono podstawowe operacje, jakie mo\u017cna wykona\u0107 na kontenerze.<\/p>\n\n\n\n<p>*Ten wpis jest cz\u0119\u015bci\u0105 serii wpis\u00f3w o Dockerze. Je\u017celi jakie\u015b poj\u0119cie zosta\u0142o u\u017cyte bez wyja\u015bnienia, to prawdopodobnie zosta\u0142o ju\u017c wprowadzone w jednym z wcze\u015bniejszych wpis\u00f3w.<\/p>\n\n\n\n<p>** Zach\u0119camy r\u00f3wnie\u017c do&nbsp;<strong>zapoznania si\u0119 z od\u015bwie\u017conymi w grudniu 2021 i styczniu 2022 artyku\u0142ami nt. Dockera<\/strong>, kt\u00f3re znajdziecie pod tym wpisem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Czym jest kontener i do czego s\u0142u\u017cy?<\/strong><\/h2>\n\n\n\n<p>Kontener jest ujednolicon\u0105 kolekcj\u0105 warstw sk\u0142adaj\u0105c\u0105 si\u0119 z&nbsp;warstw tylko do odczytu pochodz\u0105cych z obrazu kontenera i&nbsp;pojedynczej warstwy do odczytu i&nbsp;zapisu. Warstwa do odczytu i&nbsp;zapisu umo\u017cliwia dzia\u0142anie proces\u00f3w uruchamianych w&nbsp;kontenerze.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/03\/1-9.png\"><img decoding=\"async\" width=\"301\" height=\"597\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/03\/1-9.png\" alt=\"Graficzna interpretacja kontenera\" class=\"wp-image-20466\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/03\/1-9.png 301w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/03\/1-9-151x300.png 151w\" sizes=\"(max-width: 301px) 100vw, 301px\" \/><\/a><figcaption>Ryc. 1 Graficzna interpretacja kontenera<\/figcaption><\/figure><\/div>\n\n\n\n<p>Przeznaczeniem kontenera jest wykonywanie pojedynczego zadania (procesu). Kontener mo\u017ce znajdowa\u0107 si\u0119 w&nbsp;jednym ze stan\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>created \u2013 zosta\u0142 stworzony, ale jeszcze nie jest uruchomiony,<\/li><li>restarting \u2013 w trakcie ponownego uruchamiania swojego procesu,<\/li><li>up \u2013 wykonuje sw\u00f3j proces,<\/li><li>paused \u2013 proces kontenera zosta\u0142 wstrzymany,<\/li><li>exited \u2013 kontener zako\u0144czy\u0142 wykonywanie swojego procesu.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tworzenie i uruchamianie<\/strong><\/h2>\n\n\n\n<p>Kontener mo\u017cna stworzy\u0107 i uruchomi\u0107 za pomoc\u0105 polecenia:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker run &#x5B;nazwa lub id obrazu]\n<\/pre><\/div>\n\n\n<p>Powy\u017csze polecenie zosta\u0142o przedstawione z minimaln\u0105 liczb\u0105 parametr\u00f3w. W&nbsp;praktyce jest ono wykonywane z&nbsp;r\u00f3\u017cnymi opcjami, kt\u00f3re okre\u015blaj\u0105 w\u0142a\u015bciwo\u015bci kontenera.<\/p>\n\n\n\n<p>Na pocz\u0105tku warto pozna\u0107 opcj\u0119&nbsp;<code>--name<\/code>, za pomoc\u0105 kt\u00f3rej mo\u017cemy nazwa\u0107 kontener. Je\u017celi nie podamy w\u0142asnej nazwy, wtedy wygeneruje j\u0105 Docker. Przyjazna nazwa b\u0119dzie pomocna podczas wykonywania polece\u0144 na kontenerze.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker run --name=&quot;ubuntu-container&quot; ubuntu:15:10\n<\/pre><\/div>\n\n\n<p>Kontener b\u0119dzie uruchomiony tak d\u0142ugo, jak b\u0119dzie wymaga\u0142o tego dzia\u0142aj\u0105ce w&nbsp;nim polecenie. Domy\u015blnie kontener uruchamia polecenie okre\u015blone w&nbsp;kodzie \u017ar\u00f3d\u0142owym obrazu. W&nbsp;przypadku obrazu&nbsp;<code>ubuntu<\/code>&nbsp;jest to&nbsp;<code>\/bin\/bash<\/code>. Po uruchomieniu, kontener&nbsp;<code>ubuntu-container<\/code>&nbsp;wykona\u0142 polecenie&nbsp;<code>bin\/bash,<\/code>&nbsp;b\u0119d\u0105c przez niezauwa\u017calnie kr\u00f3tki czas w stanie <em>up<\/em>, a&nbsp;nast\u0119pnie zako\u0144czy\u0142 dzia\u0142anie przechodz\u0105c w&nbsp;stan <em>exited<\/em>.<\/p>\n\n\n\n<p>Kontener domy\u015blnie uruchomi si\u0119 jako proces pierwszoplanowy. \u017beby uruchomi\u0107 kontener w&nbsp;tle, nale\u017cy doda\u0107 opcj\u0119&nbsp;<code>-d<\/code>&nbsp;(<code>--detach=true<\/code>) do polecenia&nbsp;<code>docker run<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker run -d &#x5B;id lub nazwa obrazu]\n<\/pre><\/div>\n\n\n<p>Czasami chcemy u\u017cy\u0107 kontenera tylko po to, \u017ceby jednokrotnie wykona\u0107 jego polecenie. W&nbsp;takiej sytuacji warto uruchomi\u0107 kontener z&nbsp;opcj\u0105&nbsp;<code>--rm=true<\/code>, kt\u00f3ra spowoduje, \u017ce kontener zostanie automatycznie usuni\u0119ty po zako\u0144czeniu dzia\u0142ania.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker run --rm=true &#x5B;id lub nazwa kontenera]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Wy\u015bwietlanie<\/strong><\/h2>\n\n\n\n<p>List\u0119 wszystkich kontener\u00f3w mo\u017cna wy\u015bwietli\u0107 za pomoc\u0105 polecenia:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker ps -a\nCONTAINER ID    IMAGE           COMMAND        CREATED         STATUS      PORTS    NAMES\n64d9865cea19    ubuntu:15.10    &quot;\/bin\/bash&quot;    23 hours ago    Exited (0)           ubuntu-container\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Zatrzymywanie<\/strong><\/h2>\n\n\n\n<p>W celu zatrzymania kontenera nale\u017cy wykona\u0107 polecenie:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker stop &#x5B;id lub nazwa kontenera]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Usuwanie<\/strong><\/h2>\n\n\n\n<p>Kontener mo\u017cna usun\u0105\u0107 za pomoc\u0105 polecenia:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker rm &#x5B;id lub nazwa kontenera]\n<\/pre><\/div>\n\n\n<p>Docker nie posiada polecenia usuwaj\u0105cego wszystkie kontenery, ale mo\u017cna je uzyska\u0107, sk\u0142adaj\u0105c polecenie wy\u015bwietlaj\u0105ce identyfikatory wszystkich kontener\u00f3w i&nbsp;polecenie usuwaj\u0105ce kontener. Usuni\u0119cie wszystkich kontener\u00f3w mo\u017ce by\u0107 szczeg\u00f3lnie przydatne na pocz\u0105tku nauki.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndocker rm $(docker ps -a -q)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">* Spis wpis\u00f3w w serii<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/sii.pl\/blog\/docker-obraz-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,obraz\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Obraz: podstawowe operacje<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: podstawowe operacje<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-polecenia\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: polecenia<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-strumienie-wewy-i-przegladanie-plikow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: strumienie we\/wy i przegl\u0105danie plik\u00f3w<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-udostepnianie-portow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: udost\u0119pnianie port\u00f3w<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-wspoldzielenie-plikow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: wsp\u00f3\u0142dzielenie plik\u00f3w<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-zmienne-srodowiskowe\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\">Kontener: zmienne \u015brodowiskowe<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">** Zaktualizowane w 2021 i 2022 artyku\u0142y nt. Dockera<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-co-to-jest\/?category=development-na-twardo&amp;tag=devops,docker,kontener\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Docker dla programist\u00f3w: co to jest?<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-instalacja-i-budowanie-pierwszego-srodowiska\/?category=development-na-twardo&amp;tag=devops,docker,postgresql\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Docker dla programist\u00f3w \u2013 budowa pierwszego \u015brodowiska. Cz\u0119\u015b\u0107 I<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-budowa-srodowiska-rozwojowego-cz-2\/?category=development-na-twardo&amp;tag=camunda,devops,docker\" target=\"_blank\" rel=\"noreferrer noopener\">Docker dla programist\u00f3w \u2013 budowa \u015brodowiska rozwojowego. Cz\u0119\u015b\u0107 II<\/a><\/li><li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-dystrybucja-aplikacji-cz-3\/?category=development-na-twardo&amp;tag=devops,docker,docker-maven-plugin\" target=\"_blank\" rel=\"noreferrer noopener\">Docker dla programist\u00f3w \u2013 dystrybucja aplikacji\u00a0<\/a><\/li><\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;1223&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;4&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 4)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Docker: kontener, podstawowe operacje&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 4)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Kontener to jedno z podstawowych poj\u0119\u0107 Dockera. Konteneryzacja pozwala na uruchomienie procesu (programu) w odizolowanym \u015brodowisku zawieraj\u0105cym wszystkie zale\u017cno\u015bci wymagane &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/docker-kontener-podstawowe-operacje\/\">Continued<\/a><\/p>\n","protected":false},"author":61,"featured_media":15407,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":2,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[153,224],"class_list":["post-1223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-docker","tag-kontener"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2016\/02\/25_docker_3-1.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1223"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=1223"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1223\/revisions"}],"predecessor-version":[{"id":20481,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1223\/revisions\/20481"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/15407"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=1223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=1223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=1223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}