{"id":1374,"date":"2026-09-16T12:09:47","date_gmt":"2026-09-16T12:09:47","guid":{"rendered":"https:\/\/rapiddc.pl\/blog\/?p=1374"},"modified":"2026-09-16T12:09:47","modified_gmt":"2026-09-16T12:09:47","slug":"docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza","status":"publish","type":"post","link":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/","title":{"rendered":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja"},"content":{"rendered":"<h1>Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja<\/h1>\n<p>Docker na w\u0142asnym VPS-ie to najprostszy spos\u00f3b, \u017ceby uruchamia\u0107 kilka aplikacji obok siebie bez mieszania ich zale\u017cno\u015bci. Ten poradnik prowadzi od czystego systemu do dzia\u0142aj\u0105cej aplikacji w Docker Compose. Po drodze pokazuje jedn\u0105 pu\u0142apk\u0119 z firewallem, o kt\u00f3rej dokumentacja Dockera ostrzega wprost, a wielu pocz\u0105tkuj\u0105cych i tak jej nie zauwa\u017ca.<\/p>\n<nav class=\"sdc-toc\">\n<h2>Spis tre\u015bci<\/h2>\n<ul>\n<li><a href=\"#czego-potrzebujesz-na-start\">Czego potrzebujesz na start<\/a><\/li>\n<li><a href=\"#krok-1-zainstaluj-dockera-z\">Krok 1: zainstaluj Dockera z oficjalnego repozytorium<\/a><\/li>\n<li><a href=\"#krok-2-pierwsza-aplikacja-w\">Krok 2: pierwsza aplikacja w Docker Compose<\/a><\/li>\n<li><a href=\"#krok-3-nie-wystawiaj-portow\">Krok 3: nie wystawiaj port\u00f3w obok firewalla<\/a><\/li>\n<li><a href=\"#krok-4-ogranicz-logi-zanim\">Krok 4: ogranicz logi, zanim zapchaj\u0105 dysk<\/a><\/li>\n<li><a href=\"#krok-5-aktualizacje-i-kopie\">Krok 5: aktualizacje i kopie zapasowe<\/a><\/li>\n<li><a href=\"#podsumowanie\">Podsumowanie<\/a><\/li>\n<li><a href=\"#faq-najczesciej-zadawane-pytania-o\">FAQ \u2013 najcz\u0119\u015bciej zadawane pytania o Dockera na VPS<\/a><\/li>\n<\/ul>\n<\/nav>\n<p>Je\u015bli zastanawiasz si\u0119 jeszcze, czy VPS jest Ci w og\u00f3le potrzebny, zajrzyj najpierw do wpisu <a href=\"https:\/\/rapiddc.pl\/blog\/do-czego-uzyc-serwera-vps-8-praktycznych-zastosowan-dla\/\">do czego u\u017cy\u0107 serwera VPS<\/a>.<\/p>\n<h2 id=\"czego-potrzebujesz-na-start\">Czego potrzebujesz na start<\/h2>\n<ul>\n<li><strong>VPS z wirtualizacj\u0105 KVM.<\/strong> Docker potrzebuje w\u0142asnego j\u0105dra i pe\u0142nej kontroli nad sieci\u0105, dlatego na KVM dzia\u0142a bez kombinowania. Wszystkie <a href=\"https:\/\/rapiddc.pl\/serwery-vps\">serwery VPS w RapidDC<\/a> dzia\u0142aj\u0105 na KVM i daj\u0105 pe\u0142ny dost\u0119p administracyjny.<\/li>\n<li><strong>Debian 12 lub 13 albo aktualne Ubuntu.<\/strong> Oba systemy wybierzesz przy zamawianiu VPS-a w RapidDC.<\/li>\n<li><strong>Dost\u0119p przez SSH<\/strong> na koncie z uprawnieniami sudo. Je\u015bli logujesz si\u0119 pierwszy raz, pomo\u017ce wpis <a href=\"https:\/\/rapiddc.pl\/blog\/jak-polaczyc-sie-z-serwerem-vps-przez-ssh\/\">jak po\u0142\u0105czy\u0107 si\u0119 z serwerem VPS przez SSH<\/a>.<\/li>\n<\/ul>\n<p>Ile zasob\u00f3w? Sam Docker zu\u017cywa niewiele. Liczy si\u0119 to, co w nim uruchomisz. Do nauki i jednej lekkiej aplikacji wystarczy ma\u0142y plan. Kilka us\u0142ug z baz\u0105 danych szybciej zje RAM i dysk. Przy takich projektach lepiej sprawdzi si\u0119 linia <a href=\"https:\/\/rapiddc.pl\/serwery-vps-nvme\">VPS NVMe<\/a> na procesorach AMD EPYC. Plan Light ma 1 vCPU, 2 GB RAM i 20 GB NVMe, a plan Rapid 2 vCPU, 4 GB RAM i 50 GB NVMe. Liczb\u0119 rdzeni i ilo\u015b\u0107 RAM w VPS-ie RapidDC mo\u017cna zmieni\u0107 na ka\u017cdym etapie, wi\u0119c nie musisz trafi\u0107 z rozmiarem za pierwszym razem.<\/p>\n<h2 id=\"krok-1-zainstaluj-dockera-z\">Krok 1: zainstaluj Dockera z oficjalnego repozytorium<\/h2>\n<p>Pakiet <code>docker.io<\/code> z repozytorium systemu bywa starszy ni\u017c wydania Dockera. Dlatego instalujemy z repozytorium Dockera, dok\u0142adnie tak, jak opisuje to dokumentacja projektu dla Debiana.<\/p>\n<p>Najpierw klucz i \u017ar\u00f3d\u0142o pakiet\u00f3w:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\r\nsudo apt install ca-certificates curl\r\nsudo install -m 0755 -d \/etc\/apt\/keyrings\r\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg -o \/etc\/apt\/keyrings\/docker.asc\r\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc\r\n\r\nsudo tee \/etc\/apt\/sources.list.d\/docker.sources &lt;&lt;EOF\r\nTypes: deb\r\nURIs: https:\/\/download.docker.com\/linux\/debian\r\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\")\r\nComponents: stable\r\nArchitectures: $(dpkg --print-architecture)\r\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\r\nEOF\r\n\r\nsudo apt update\r\n<\/code><\/pre>\n<p>Na Ubuntu zamie\u0144 <code>debian<\/code> na <code>ubuntu<\/code> w obu adresach. Potem sama instalacja:<\/p>\n<pre><code class=\"language-bash\">sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\r\n<\/code><\/pre>\n<p>Sprawd\u017a, czy dzia\u0142a:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status docker\r\nsudo docker run hello-world\r\n<\/code><\/pre>\n<p>Je\u015bli zobaczysz komunikat powitalny, Docker pobra\u0142 obraz i uruchomi\u0142 kontener.<\/p>\n<h3>Docker bez sudo? Z g\u0142ow\u0105<\/h3>\n<p>Polecenie <code>sudo usermod -aG docker $USER<\/code> pozwala u\u017cywa\u0107 Dockera bez <code>sudo<\/code>. Pami\u0119taj jednak, \u017ce cz\u0142onek grupy <code>docker<\/code> ma w praktyce uprawnienia roota na serwerze. Dodawaj do niej tylko w\u0142asne konto administracyjne, nigdy konta aplikacji czy wsp\u00f3\u0142pracownik\u00f3w, kt\u00f3rzy nie powinni mie\u0107 pe\u0142nego dost\u0119pu.<\/p>\n<h2 id=\"krok-2-pierwsza-aplikacja-w\">Krok 2: pierwsza aplikacja w Docker Compose<\/h2>\n<p>Pojedyncze polecenia <code>docker run<\/code> szybko robi\u0105 si\u0119 nieczytelne. Docker Compose zapisuje ca\u0142\u0105 konfiguracj\u0119 w jednym pliku, kt\u00f3ry mo\u017cesz trzyma\u0107 w repozytorium i odtworzy\u0107 na innym serwerze.<\/p>\n<p>Na przyk\u0142ad uruchomimy Uptime Kuma, lekkie narz\u0119dzie do monitorowania stron. Utw\u00f3rz katalog i plik <code>compose.yaml<\/code>:<\/p>\n<pre><code class=\"language-bash\">mkdir -p ~\/apps\/uptime-kuma &amp;&amp; cd ~\/apps\/uptime-kuma\r\nnano compose.yaml\r\n<\/code><\/pre>\n<pre><code class=\"language-yaml\">services:\r\n  uptime-kuma:\r\n    image: louislam\/uptime-kuma:1\r\n    container_name: uptime-kuma\r\n    restart: unless-stopped\r\n    ports:\r\n      - \"127.0.0.1:3001:3001\"\r\n    volumes:\r\n      - .\/data:\/app\/data\r\n<\/code><\/pre>\n<p>Uruchom i sprawd\u017a stan:<\/p>\n<pre><code class=\"language-bash\">docker compose up -d\r\ndocker compose ps\r\ndocker compose logs -f\r\n<\/code><\/pre>\n<p>Trzy linijki w tym pliku robi\u0105 wa\u017cn\u0105 robot\u0119. <code>restart: unless-stopped<\/code> podnosi kontener po restarcie serwera. Wolumen <code>.\/data<\/code> trzyma dane poza kontenerem, wi\u0119c usuni\u0119cie i odtworzenie kontenera ich nie kasuje. A zapis <code>127.0.0.1:3001:3001<\/code> zamiast samego <code>3001:3001<\/code> to temat nast\u0119pnego kroku.<\/p>\n<h2 id=\"krok-3-nie-wystawiaj-portow\">Krok 3: nie wystawiaj port\u00f3w obok firewalla<\/h2>\n<p>To najcz\u0119stszy b\u0142\u0105d przy Dockerze na VPS-ie. W\u0142\u0105czasz UFW, blokujesz wszystko poza SSH, a panel aplikacji i tak otwiera si\u0119 z internetu. Dokumentacja Dockera m\u00f3wi to wprost: porty kontener\u00f3w wystawione przez Dockera omijaj\u0105 regu\u0142y ufw i firewalld, bo Docker sam dopisuje swoje regu\u0142y do iptables. Ta sama dokumentacja zaznacza, \u017ce regu\u0142y tworzone przez <code>nft<\/code> nie s\u0105 wspierane na systemie z Dockerem.<\/p>\n<p>Co z tym zrobi\u0107:<\/p>\n<ul>\n<li><strong>Wi\u0105\u017c porty z <code>127.0.0.1<\/code><\/strong>, jak w przyk\u0142adzie wy\u017cej. Us\u0142uga jest wtedy dost\u0119pna tylko z samego serwera.<\/li>\n<li><strong>Do panelu wchod\u017a przez tunel SSH.<\/strong> Na swoim komputerze uruchom <code>ssh -L 3001:127.0.0.1:3001 uzytkownik@IP_SERWERA<\/code> i otw\u00f3rz w przegl\u0105darce <code>http:\/\/localhost:3001<\/code>.<\/li>\n<li><strong>Publiczne us\u0142ugi wystawiaj przez reverse proxy<\/strong> (Nginx, Caddy, Traefik) z certyfikatem SSL na portach 80 i 443, a aplikacje za nim zostaw na <code>127.0.0.1<\/code>.<\/li>\n<\/ul>\n<p>Wi\u0119cej o tym, co firewall robi, a czego nie, znajdziesz we wpisie <a href=\"https:\/\/rapiddc.pl\/blog\/czym-jest-zapora-sieciowa-i-czy-musisz-ja-miec\/\">czym jest zapora sieciowa i czy musisz j\u0105 mie\u0107<\/a>.<\/p>\n<h2 id=\"krok-4-ogranicz-logi-zanim\">Krok 4: ogranicz logi, zanim zapchaj\u0105 dysk<\/h2>\n<p>Domy\u015blnie Docker zapisuje logi kontener\u00f3w w plikach JSON bez limitu rozmiaru. Gadatliwa aplikacja potrafi po kilku tygodniach zaj\u0105\u0107 spor\u0105 cz\u0119\u015b\u0107 ma\u0142ego dysku. Utw\u00f3rz plik <code>\/etc\/docker\/daemon.json<\/code>:<\/p>\n<pre><code class=\"language-json\">{\r\n  \"log-driver\": \"json-file\",\r\n  \"log-opts\": {\r\n    \"max-size\": \"10m\",\r\n    \"max-file\": \"3\"\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>Nast\u0119pnie <code>sudo systemctl restart docker<\/code>. Ustawienie obejmuje kontenery tworzone od tej chwili, wi\u0119c istniej\u0105ce odtw\u00f3rz poleceniem <code>docker compose up -d --force-recreate<\/code>.<\/p>\n<p>Miejsce zajmowane przez obrazy, kontenery i wolumeny sprawdzisz poleceniem <code>docker system df<\/code>.<\/p>\n<h2 id=\"krok-5-aktualizacje-i-kopie\">Krok 5: aktualizacje i kopie zapasowe<\/h2>\n<p>Aktualizacja aplikacji z Compose to dwa polecenia w katalogu projektu:<\/p>\n<pre><code class=\"language-bash\">docker compose pull\r\ndocker compose up -d\r\ndocker image prune\r\n<\/code><\/pre>\n<p>Ostatnie usuwa stare, nieu\u017cywane obrazy, kt\u00f3re po aktualizacjach zostaj\u0105 na dysku.<\/p>\n<p>Przy backupie pami\u0119taj, \u017ce kontener jest jednorazowy, a warto\u015b\u0107 maj\u0105 dane. Kopiuj katalogi wolumen\u00f3w (w przyk\u0142adzie <code>~\/apps\/uptime-kuma\/data<\/code>) i pliki <code>compose.yaml<\/code>. Bazy danych zrzucaj ich w\u0142asnymi narz\u0119dziami, na przyk\u0142ad <code>mysqldump<\/code> albo <code>pg_dump<\/code>, zamiast kopiowa\u0107 pliki dzia\u0142aj\u0105cej bazy. Kopi\u0119 trzymaj poza serwerem. W RapidDC mo\u017cesz dokupi\u0107 do VPS-a plan backupu, od Backup.Standard do Backup.Mega.<\/p>\n<p>Je\u015bli planujesz na tym samym VPS-ie testowa\u0107 nowe wersje aplikacji, rozwa\u017c osobne \u015brodowisko. Piszemy o tym we wpisie <a href=\"https:\/\/rapiddc.pl\/blog\/serwer-vps-dla-srodowiska-testowego-jak-oddzielic-development-od-produkcji\/\">VPS dla \u015brodowiska testowego<\/a>.<\/p>\n<h2 id=\"podsumowanie\">Podsumowanie<\/h2>\n<p>Docker na VPS-ie to pi\u0119\u0107 krok\u00f3w: instalacja z oficjalnego repozytorium, aplikacja opisana w <code>compose.yaml<\/code>, porty przypi\u0119te do <code>127.0.0.1<\/code> lub schowane za reverse proxy, limit log\u00f3w i regularny backup wolumen\u00f3w. Je\u015bli zrobisz tylko jedn\u0105 rzecz z tej listy ponad instalacj\u0119, niech to b\u0119dzie krok 3.<\/p>\n<p>Potrzebujesz serwera pod kontenery? Sprawd\u017a <a href=\"https:\/\/rapiddc.pl\/serwery-vps-nvme\">serwery VPS NVMe w RapidDC<\/a> z procesorami AMD EPYC i darmow\u0105, nielimitowan\u0105 reinstalacj\u0105 systemu. Na plany Rapid i Hyper dzia\u0142a teraz kod PROMONVME20, kt\u00f3ry obni\u017ca cen\u0119 o 20% w pierwszym okresie rozliczeniowym. Aktualne kody znajdziesz na stronie <a href=\"https:\/\/rapiddc.pl\/promocje\">promocji<\/a>.<\/p>\n<h2 id=\"faq-najczesciej-zadawane-pytania-o\">FAQ \u2013 najcz\u0119\u015bciej zadawane pytania o Dockera na VPS<\/h2>\n<h3>Czy na VPS-ie w RapidDC mog\u0119 zainstalowa\u0107 Dockera?<\/h3>\n<p>Tak. VPS-y RapidDC dzia\u0142aj\u0105 na wirtualizacji KVM i daj\u0105 pe\u0142ny dost\u0119p administracyjny, wi\u0119c Dockera instalujesz tak samo jak na fizycznym serwerze z Debianem lub Ubuntu. Instalacj\u0119 najlepiej przeprowadzi\u0107 z oficjalnego repozytorium Dockera.<\/p>\n<h3>Dlaczego m\u00f3j kontener jest dost\u0119pny z internetu, mimo \u017ce UFW blokuje port?<\/h3>\n<p>Docker dopisuje w\u0142asne regu\u0142y iptables dla wystawionych port\u00f3w, wi\u0119c omijaj\u0105 one regu\u0142y ufw. Przypnij port do adresu 127.0.0.1 w pliku compose.yaml, a publiczne us\u0142ugi wystaw przez reverse proxy na portach 80 i 443.<\/p>\n<h3>Ile RAM potrzebuje VPS pod Dockera?<\/h3>\n<p>Sam Docker zu\u017cywa niewiele, wi\u0119c decyduje suma aplikacji, kt\u00f3re uruchomisz. Do nauki i jednej lekkiej us\u0142ugi wystarczy ma\u0142y plan. Przy kilku kontenerach z baz\u0105 danych wybierz wi\u0119cej pami\u0119ci. W RapidDC ilo\u015b\u0107 RAM i rdzeni mo\u017cna zwi\u0119kszy\u0107 w dowolnym momencie.<\/p>\n<h3>Czy dane znikn\u0105, gdy usun\u0119 kontener?<\/h3>\n<p>Znikn\u0105, je\u015bli trzymasz je wewn\u0105trz kontenera. Dlatego dane aplikacji zapisuj w wolumenach lub katalogach podpi\u0119tych z serwera, jak <code>.\/data<\/code> w przyk\u0142adzie z poradnika. Takie katalogi przetrwaj\u0105 usuni\u0119cie i ponowne utworzenie kontenera.<\/p>\n<h3>Docker Compose czy pojedyncze polecenia docker run?<\/h3>\n<p>Na serwerze lepiej sprawdza si\u0119 Docker Compose. Ca\u0142a konfiguracja jest w jednym pliku, kt\u00f3ry \u0142atwo wersjonowa\u0107, skopiowa\u0107 na inny VPS i odtworzy\u0107 jednym poleceniem <code>docker compose up -d<\/code>.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Czy na VPS-ie w RapidDC mog\u0119 zainstalowa\u0107 Dockera?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Tak. VPS-y RapidDC dzia\u0142aj\u0105 na wirtualizacji KVM i daj\u0105 pe\u0142ny dost\u0119p administracyjny, wi\u0119c Dockera instalujesz tak samo jak na fizycznym serwerze z Debianem lub Ubuntu. Instalacj\u0119 najlepiej przeprowadzi\u0107 z oficjalnego repozytorium Dockera.\"}}, {\"@type\": \"Question\", \"name\": \"Dlaczego m\u00f3j kontener jest dost\u0119pny z internetu, mimo \u017ce UFW blokuje port?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Docker dopisuje w\u0142asne regu\u0142y iptables dla wystawionych port\u00f3w, wi\u0119c omijaj\u0105 one regu\u0142y ufw. Przypnij port do adresu 127.0.0.1 w pliku compose.yaml, a publiczne us\u0142ugi wystaw przez reverse proxy na portach 80 i 443.\"}}, {\"@type\": \"Question\", \"name\": \"Ile RAM potrzebuje VPS pod Dockera?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Sam Docker zu\u017cywa niewiele, wi\u0119c decyduje suma aplikacji, kt\u00f3re uruchomisz. Do nauki i jednej lekkiej us\u0142ugi wystarczy ma\u0142y plan. Przy kilku kontenerach z baz\u0105 danych wybierz wi\u0119cej pami\u0119ci. W RapidDC ilo\u015b\u0107 RAM i rdzeni mo\u017cna zwi\u0119kszy\u0107 w dowolnym momencie.\"}}, {\"@type\": \"Question\", \"name\": \"Czy dane znikn\u0105, gdy usun\u0119 kontener?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Znikn\u0105, je\u015bli trzymasz je wewn\u0105trz kontenera. Dlatego dane aplikacji zapisuj w wolumenach lub katalogach podpi\u0119tych z serwera, jak .\/data w przyk\u0142adzie z poradnika. Takie katalogi przetrwaj\u0105 usuni\u0119cie i ponowne utworzenie kontenera.\"}}, {\"@type\": \"Question\", \"name\": \"Docker Compose czy pojedyncze polecenia docker run?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Na serwerze lepiej sprawdza si\u0119 Docker Compose. Ca\u0142a konfiguracja jest w jednym pliku, kt\u00f3ry \u0142atwo wersjonowa\u0107, skopiowa\u0107 na inny VPS i odtworzy\u0107 jednym poleceniem docker compose up -d.\"}}]}<\/script><\/p>\n<hr class=\"ai-disclosure-rule\" \/>\n<p class=\"ai-disclosure\"><em>Artyku\u0142 powsta\u0142 z wykorzystaniem narz\u0119dzi sztucznej inteligencji (AI) pod nadzorem zespo\u0142u RapidDC. Grafika ilustracyjna zosta\u0142a wygenerowana przez AI.<\/em><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;1374&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;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&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: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Zainstaluj Dockera na VPS z Debianem lub Ubuntu, uruchom pierwsz\u0105 aplikacj\u0119 w Docker Compose i nie wystawiaj port\u00f3w z pomini\u0119ciem firewalla.<\/p>\n","protected":false},"author":5,"featured_media":1372,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[161,165,166,45,24],"class_list":["post-1374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-serwer-vps","tag-docker","tag-docker-compose","tag-kontenery","tag-linux","tag-serwer-vps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog<\/title>\n<meta name=\"description\" content=\"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog\" \/>\n<meta property=\"og:description\" content=\"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Rapiddc.pl\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-16T12:09:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"rdc-publisher\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"rdc-publisher\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/\"},\"author\":{\"name\":\"rdc-publisher\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#\\\/schema\\\/person\\\/05ab570dc715261cb5fdfa30d303faf2\"},\"headline\":\"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja\",\"datePublished\":\"2026-09-16T12:09:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/\"},\"wordCount\":1205,\"publisher\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/2026-09-16-source.jpg\",\"keywords\":[\"Docker\",\"Docker Compose\",\"kontenery\",\"Linux\",\"serwer VPS\"],\"articleSection\":[\"Serwer VPS\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/\",\"url\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/\",\"name\":\"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/2026-09-16-source.jpg\",\"datePublished\":\"2026-09-16T12:09:47+00:00\",\"description\":\"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/2026-09-16-source.jpg\",\"contentUrl\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/2026-09-16-source.jpg\",\"width\":1536,\"height\":1024,\"caption\":\"AI-generated image (OpenAI gpt-image-2)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/\",\"name\":\"Blog Rapiddc.pl\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#organization\",\"name\":\"Blog Hostingu Rapiddc\",\"url\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/rapiddc_blog.png\",\"contentUrl\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/rapiddc_blog.png\",\"width\":378,\"height\":70,\"caption\":\"Blog Hostingu Rapiddc\"},\"image\":{\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rapiddc.pl\\\/blog\\\/#\\\/schema\\\/person\\\/05ab570dc715261cb5fdfa30d303faf2\",\"name\":\"rdc-publisher\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g\",\"caption\":\"rdc-publisher\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog","description":"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/","og_locale":"pl_PL","og_type":"article","og_title":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog","og_description":"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.","og_url":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/","og_site_name":"Blog Rapiddc.pl","article_published_time":"2026-09-16T12:09:47+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg","type":"image\/jpeg"}],"author":"rdc-publisher","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"rdc-publisher","Szacowany czas czytania":"7 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#article","isPartOf":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/"},"author":{"name":"rdc-publisher","@id":"https:\/\/rapiddc.pl\/blog\/#\/schema\/person\/05ab570dc715261cb5fdfa30d303faf2"},"headline":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja","datePublished":"2026-09-16T12:09:47+00:00","mainEntityOfPage":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/"},"wordCount":1205,"publisher":{"@id":"https:\/\/rapiddc.pl\/blog\/#organization"},"image":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#primaryimage"},"thumbnailUrl":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg","keywords":["Docker","Docker Compose","kontenery","Linux","serwer VPS"],"articleSection":["Serwer VPS"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/","url":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/","name":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja | Rapid DC Blog","isPartOf":{"@id":"https:\/\/rapiddc.pl\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#primaryimage"},"image":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#primaryimage"},"thumbnailUrl":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg","datePublished":"2026-09-16T12:09:47+00:00","description":"Zapraszamy do zapoznania si\u0119 ze wpisem Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja. W celach kontaktowych zadzwo\u0144 \u260e\ufe0f +48 89 522 12 20 lub napisz wiadomo\u015b\u0107 \u2709\ufe0f info@rapiddc.pl.","breadcrumb":{"@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#primaryimage","url":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg","contentUrl":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2026\/09\/2026-09-16-source.jpg","width":1536,"height":1024,"caption":"AI-generated image (OpenAI gpt-image-2)"},{"@type":"BreadcrumbList","@id":"https:\/\/rapiddc.pl\/blog\/docker-na-vps-krok-po-kroku-instalacja-compose-i-pierwsza\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/rapiddc.pl\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker na VPS krok po kroku: instalacja, Compose i pierwsza aplikacja"}]},{"@type":"WebSite","@id":"https:\/\/rapiddc.pl\/blog\/#website","url":"https:\/\/rapiddc.pl\/blog\/","name":"Blog Rapiddc.pl","description":"","publisher":{"@id":"https:\/\/rapiddc.pl\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rapiddc.pl\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/rapiddc.pl\/blog\/#organization","name":"Blog Hostingu Rapiddc","url":"https:\/\/rapiddc.pl\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/rapiddc.pl\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2019\/09\/rapiddc_blog.png","contentUrl":"https:\/\/rapiddc.pl\/blog\/wp-content\/uploads\/2019\/09\/rapiddc_blog.png","width":378,"height":70,"caption":"Blog Hostingu Rapiddc"},"image":{"@id":"https:\/\/rapiddc.pl\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/rapiddc.pl\/blog\/#\/schema\/person\/05ab570dc715261cb5fdfa30d303faf2","name":"rdc-publisher","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d1661ba0c3831d04684ff9099f557641187136e40a2f3b428594ae42b5253925?s=96&d=mm&r=g","caption":"rdc-publisher"}}]}},"_links":{"self":[{"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/posts\/1374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/comments?post=1374"}],"version-history":[{"count":1,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/posts\/1374\/revisions"}],"predecessor-version":[{"id":1375,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/posts\/1374\/revisions\/1375"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/media\/1372"}],"wp:attachment":[{"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/media?parent=1374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/categories?post=1374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rapiddc.pl\/blog\/wp-json\/wp\/v2\/tags?post=1374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}