{"id":1558,"date":"2016-02-29T10:08:49","date_gmt":"2016-02-29T09:08:49","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=1558"},"modified":"2023-08-16T14:52:12","modified_gmt":"2023-08-16T12:52:12","slug":"docker-kontener-strumienie-wewy-i-przegladanie-plikow","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/docker-kontener-strumienie-wewy-i-przegladanie-plikow\/","title":{"rendered":"Docker: kontener, strumienie we\/wy i przegl\u0105danie plik\u00f3w"},"content":{"rendered":"\n<p>Polecenia kontenera mog\u0105 wprowadza\u0107 zmiany w&nbsp;jego systemie plik\u00f3w lub generowa\u0107 komunikaty w wyj\u015bciowym strumieniu danych. Celem tego wpisu jest przybli\u017cenie spos\u00f3b \u015bledzenia aktywno\u015bci kontenera: przegl\u0105danie jego system\u00f3w plik\u00f3w oraz podgl\u0105d wyj\u015bciowego strumienia danych g\u0142\u00f3wnego procesu kontenera.<\/p>\n\n\n\n<p><em>Ten wpis jest cz\u0119\u015bci\u0105 serii wpis\u00f3w o Dockerze. Je\u017celi jakie\u015b poj\u0119cie jest u\u017cywane bez wyja\u015bnienia to prawdopodobnie zosta\u0142o wprowadzone w&nbsp;jednym z wcze\u015bniejszych wpis\u00f3w.<\/em><\/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\">Podgl\u0105d g\u0142\u00f3wnego procesu<\/h2>\n\n\n\n<p>Pogl\u0105d aktywno\u015bci g\u0142\u00f3wnego procesu kontenera mo\u017cna uzyska\u0107 poprzez po\u0142\u0105czenie w\u0142asnego okna terminala ze strumieniami wej\u015bcia\/wyj\u015bcia g\u0142\u00f3wnego procesu kontenerem. S\u0142u\u017cy do tego polecenie <code>docker attach<\/code>. Po\u0142\u0105czenie mo\u017ce by\u0107 ustanowione tylko z&nbsp;dzia\u0142aj\u0105cym kontenerem.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker attach &#x5B;id lub nazwa kontenera]\n<\/pre><\/div>\n\n\n<p>Dla przyk\u0142adu uruchommy kontener obrazu <code>ubuntu<\/code> z opcj\u0105 <code>-d<\/code> (proces drugoplanowy) i poleceniem: <code>\/bin\/sh -c 'while true; do date; sleep 1; done'<\/code>. W wyniku zadanego polecenia kontener co jedn\u0105 sekund\u0119 b\u0119dzie wy\u015bwietla\u0142 aktualn\u0105 dat\u0119.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run --name=&quot;ubuntu-container&quot; -d ubuntu \/bin\/sh -c &quot;while true; do date; sleep 1; done&quot;\n<\/pre><\/div>\n\n\n<p>Kontener dzia\u0142a w\u00a0tle, dlatego nie widzimy \u017cadnych komunikat\u00f3w wyj\u015bcia. Pod\u0142\u0105czmy si\u0119 do kontenera w\u00a0celu obserwacji strumienia danych wyj\u015bciowych.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker attach ubuntu-container\n<\/pre><\/div>\n\n\n<p>Powinni\u015bmy zacz\u0105\u0107 obserwowa\u0107 daty i&nbsp;czas pojawiaj\u0105ce si\u0119 na ekranie.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nTue Jan 12 08:52:36 UTC 2016\nTue Jan 12 08:52:37 UTC 2016\nTue Jan 12 08:52:38 UTC 2016\n&#x5B;...]\n<\/pre><\/div>\n\n\n<p>Po\u0142\u0105czenie z kontenerem mo\u017cemy przerwa\u0107 za pomoc\u0105 kombinacji <kbd>Ctrl+C<\/kbd>. Nale\u017cy zauwa\u017cy\u0107, \u017ce spowoduje to zatrzymane g\u0142\u00f3wnego procesu kontenera. Je\u017celi chcieliby\u015bmy mie\u0107 mo\u017cliwo\u015b\u0107 od\u0142\u0105czenia si\u0119 od kontenera pozostawiaj\u0105c go dzia\u0142aj\u0105cym powinni\u015bmy zastosowa\u0107 jedno z&nbsp;rozwi\u0105za\u0144:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uruchomi\u0107 kontener z opcj\u0105&nbsp;<code>-t<\/code>&nbsp;(<code>--tty=true<\/code>), po\u0142\u0105czy\u0107 si\u0119 z kontenerem, zako\u0144czy\u0107 po\u0142\u0105czenie za pomoc\u0105 kombinacji&nbsp;<kbd>Ctrl+C<\/kbd>. Opcja&nbsp;<code>-t<\/code>&nbsp;spowoduje, \u017ce w kontenerze zostanie zaalokowany terminal.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run -t --name=&#x5B;id lub nazwa kontenera] &#x5B;nazwa obrazu]\ndocker attach &#x5B;id lub nazwa kontenera]\nCtrl+C\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Uruchomi\u0107 kontener z opcjami&nbsp;<code>-t -i<\/code>&nbsp;(<code>--interactive=true<\/code>), po\u0142\u0105czy\u0107 si\u0119 z&nbsp;kontenerem, zako\u0144czy\u0107 po\u0142\u0105czenie za pomoc\u0105 kombinacji&nbsp;<kbd>Ctrl+P<\/kbd>&nbsp;<kbd>Ctrl+Q<\/kbd>. Opcja&nbsp;<code>-i<\/code>&nbsp;powoduje, \u017ce w&nbsp;przypadku po\u0142\u0105czenia z&nbsp;kontenerem lokalny strumie\u0144 wej\u015bcia zostanie przekierowany na strumie\u0144 wej\u015bcia kontenera, a&nbsp;strumie\u0144 wyj\u015bcia kontenera na lokalny strumie\u0144 wyj\u015bcia.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run -ti --name=&#x5B;id lub nazwa kontenera] &#x5B;nazwa obrazu]\ndocker attach &#x5B;id lub nazwa kontenera]\nCtrl+P Ctrl+Q\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Uruchomi\u0107 kontener, po\u0142\u0105czy\u0107 si\u0119 z&nbsp;kontenerem z&nbsp;opcj\u0105&nbsp;<code>--sig-term=false<\/code>, zako\u0144czy\u0107 po\u0142\u0105czenie za pomoc\u0105 kombinacji&nbsp;<kbd>Ctrl+C<\/kbd>. Ustawienie opcji&nbsp;<code>--sig-term<\/code>&nbsp;na&nbsp;<code>false<\/code>&nbsp;powoduje, \u017ce w wyniku wci\u015bni\u0119cia kombinacji&nbsp;<kbd>Ctrl+C<\/kbd>&nbsp;g\u0142\u00f3wny proces kontenera nie otrzymuje sygna\u0142u ko\u0144cz\u0105cego jego dzia\u0142anie.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run --name=&#x5B;id lub nazwa kontenera] &#x5B;nazwa obrazu]\ndocker attach --sig-term=false &#x5B;id lub nazwa kontenera]\nCtrl+C\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Przegl\u0105danie plik\u00f3w<\/h2>\n\n\n\n<p>Swobodny dost\u0119p do systemu plik\u00f3w dzia\u0142aj\u0105cego kontenera mo\u017cna uzyska\u0107 wykonuj\u0105c w nim polecenie tworz\u0105ce now\u0105 pow\u0142ok\u0119. W&nbsp;celu uzyskania dost\u0119pu do strumieni wej\u015bcia i&nbsp;wyj\u015bcia pow\u0142oki polecenie <code><a href=\"http:\/\/sii.pl\/offer-page\/bpm\/\">docker<\/a> exec<\/code> nale\u017cy wywo\u0142a\u0107 z opcjami <code>-i -t<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker exec -it &#x5B;id lub nazwa kontenera] bash\n<\/pre><\/div>\n\n\n<p>W&nbsp;wyniku powy\u017cszego polecenia znak zach\u0119ty w&nbsp;lokalnego terminala powinien zamieni\u0107 si\u0119 na znak zach\u0119ty terminala kontenera, np.:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nroot@6b3d860feb49:\/# \n<\/pre><\/div>\n\n\n<p>Je\u017celi potrzebowaliby\u015bmy kontenera tylko po to, \u017ceby wykona\u0107 jakie\u015b operacje w\u00a0jego konsoli wystarczy stworzy\u0107 go i\u00a0uruchomi\u0107 z\u00a0opcjami <code>-it<\/code> i\u00a0poleceniem <code>bash<\/code>. W\u00a0przypadku obrazu <code>ubuntu<\/code> polecenie <code>bash<\/code> jest wykonywane domy\u015blnie, dlatego mo\u017cna je pomin\u0105\u0107.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run -it ubuntu\n<\/pre><\/div>\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\">\n<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=\"noopener\">Docker dla programist\u00f3w: co to jest?<\/a><\/li>\n\n\n\n<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=\"noopener\">Docker dla programist\u00f3w \u2013 budowa pierwszego \u015brodowiska. Cz\u0119\u015b\u0107 I<\/a><\/li>\n\n\n\n<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=\"noopener\">Docker dla programist\u00f3w \u2013 budowa \u015brodowiska rozwojowego. Cz\u0119\u015b\u0107 II<\/a><\/li>\n\n\n\n<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=\"noopener\">Docker dla programist\u00f3w \u2013 dystrybucja aplikacji&nbsp;<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Spis wpis\u00f3w w serii<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-obraz-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,obraz\" target=\"_blank\" rel=\"noopener\">Obraz: podstawowe operacje<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: podstawowe operacje<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-polecenia\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: polecenia<\/a><\/li>\n\n\n\n<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=\"noopener\">Kontener: strumienie we\/wy i przegl\u0105danie plik\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-udostepnianie-portow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: udost\u0119pnianie port\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-wspoldzielenie-plikow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: wsp\u00f3\u0142dzielenie plik\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-zmienne-srodowiskowe\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: zmienne \u015brodowiskowe<\/a><\/li>\n<\/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;1558&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;3&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: 3)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Docker: kontener, strumienie we\\\/wy i przegl\u0105danie plik\u00f3w&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: 3)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Polecenia kontenera mog\u0105 wprowadza\u0107 zmiany w&nbsp;jego systemie plik\u00f3w lub generowa\u0107 komunikaty w wyj\u015bciowym strumieniu danych. Celem tego wpisu jest przybli\u017cenie &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/docker-kontener-strumienie-wewy-i-przegladanie-plikow\/\">Continued<\/a><\/p>\n","protected":false},"author":61,"featured_media":15401,"comment_status":"closed","ping_status":"closed","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-1558","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_5-2.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1558"}],"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=1558"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1558\/revisions"}],"predecessor-version":[{"id":23515,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1558\/revisions\/23515"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/15401"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=1558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=1558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=1558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}