{"id":4914,"date":"2026-08-10T21:44:49","date_gmt":"2026-08-10T21:44:49","guid":{"rendered":"https:\/\/netguide.io\/linux\/docker-compose-installieren-ubuntu-debian\/"},"modified":"2026-08-10T22:34:55","modified_gmt":"2026-08-10T22:34:55","slug":"docker-compose-installieren-ubuntu-debian","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/docker-compose-installieren-ubuntu-debian\/","title":{"rendered":"Docker Compose installieren unter Ubuntu &#038; Debian (2026)"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTIzMjY0NjIzNDQiIGNsYXNzPSJuZXRndWlkZWEtYmVmb3JlLWNvbnRlbnQgbmV0Z3VpZGVhLWVudGl0eS1wbGFjZW1lbnQiPjxkaXYgY2xhc3M9Im5ldGd1aWRlYS1hZGxhYmVsIj5BZHZlcnRpc2VtZW50czwvZGl2PjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcz9jbGllbnQ9Y2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxpbnMgY2xhc3M9ImFkc2J5Z29vZ2xlIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgCmRhdGEtYWQtc2xvdD0iMzQ5NDExNTM0MiIgCmRhdGEtYWQtZm9ybWF0PSJhdXRvIj48L2lucz4KPHNjcmlwdD4gCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7IAo8L3NjcmlwdD4KPC9kaXY+<\/script>\n<p class=\"wp-block-paragraph\">Du willst mehrere Container mit einer einzigen Datei starten, statt seitenlange <code>docker run<\/code>-Befehle zu tippen? Dann f\u00fchrt kein Weg an Docker Compose vorbei. In dieser Anleitung zeigen wir dir, wie du <strong>Docker Compose unter Ubuntu und Debian installierst<\/strong> \u2013 und zwar die aktuelle Version 2 als offizielles Docker-Plugin. Am Ende schreibst du deine erste <code>docker-compose.yml<\/code> und kennst die wichtigsten Befehle.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-1ffd1ad5      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tInhaltsverzeichnis\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#was-ist-docker-compose\" class=\"uagb-toc-link__trigger\">Was ist Docker Compose?<\/a><li class=\"uagb-toc__list\"><a href=\"#voraussetzungen\" class=\"uagb-toc-link__trigger\">Voraussetzungen<\/a><li class=\"uagb-toc__list\"><a href=\"#docker-compose-installieren-das-plugin-v2\" class=\"uagb-toc-link__trigger\">Docker Compose installieren \u2013 das Plugin v2<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#1-alte-pakete-entfernen-und-grundpakete-installieren\" class=\"uagb-toc-link__trigger\">1. Alte Pakete entfernen und Grundpakete installieren<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#2-docker-gpg-schl\u00fcssel-hinterlegen\" class=\"uagb-toc-link__trigger\">2. Docker-GPG-Schl\u00fcssel hinterlegen<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#3-repository-einbinden\" class=\"uagb-toc-link__trigger\">3. Repository einbinden<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#4-docker-engine-und-compose-plugin-installieren\" class=\"uagb-toc-link__trigger\">4. Docker Engine und Compose-Plugin installieren<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#5-installation-pr\u00fcfen\" class=\"uagb-toc-link__trigger\">5. Installation pr\u00fcfen<\/a><\/li><\/ul><\/li><li class=\"uagb-toc__list\"><a href=\"#docker-compose-vs-docker-compose-v1-und-v2-im-unterschied\" class=\"uagb-toc-link__trigger\">docker compose vs. docker-compose: V1 und V2 im Unterschied<\/a><li class=\"uagb-toc__list\"><a href=\"#deine-erste-docker-composeyml\" class=\"uagb-toc-link__trigger\">Deine erste docker-compose.yml<\/a><li class=\"uagb-toc__list\"><a href=\"#die-wichtigsten-compose-befehle\" class=\"uagb-toc-link__trigger\">Die wichtigsten Compose-Befehle<\/a><li class=\"uagb-toc__list\"><a href=\"#h\u00e4ufige-fehler-vermeiden\" class=\"uagb-toc-link__trigger\">H\u00e4ufige Fehler vermeiden<\/a><li class=\"uagb-toc__list\"><a href=\"#fazit\" class=\"uagb-toc-link__trigger\">Fazit<\/a><\/ul><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Was ist Docker Compose?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Compose ist ein Werkzeug, mit dem du <strong>mehrere Container gemeinsam<\/strong> als einen Stack definierst und verwaltest. Statt jeden Container einzeln zu starten, beschreibst du in einer YAML-Datei, welche Dienste laufen sollen, welche Images sie nutzen, welche Ports offen sind und welche Volumes eingebunden werden. Ein einziger Befehl startet dann das komplette Setup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist ideal f\u00fcr typische Selfhosting-Szenarien: eine Web-App plus Datenbank plus Reverse Proxy \u2013 alles in einer Datei, versionierbar und reproduzierbar. Wenn du noch ganz am Anfang stehst, lohnt sich vorab ein Blick auf unseren Grundlagenartikel <a href=\"https:\/\/netguide.io\/linux\/de\/was-ist-docker\/\">Was ist Docker?<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Voraussetzungen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker Engine ist installiert<\/strong> \u2013 Compose v2 setzt auf der Docker Engine auf. Wie du beides in einem Rutsch installierst, zeigen wir gleich.<\/li>\n\n\n\n<li><strong>Ein Ubuntu- oder Debian-System<\/strong> (z. B. Ubuntu 22.04\/24.04 oder Debian 12\/13) mit <code>sudo<\/code>&#8211; bzw. Root-Rechten.<\/li>\n\n\n\n<li><strong>Terminal-Zugang<\/strong> per SSH oder direkt an der Konsole.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Docker Compose installieren \u2013 das Plugin v2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die empfohlene Methode ist die Installation \u00fcber das <strong>offizielle Docker-APT-Repository<\/strong>. Dabei bekommst du die Docker Engine und das Compose-Plugin aus derselben Quelle und erh\u00e4ltst automatisch Updates.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Alte Pakete entfernen und Grundpakete installieren<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Entferne zun\u00e4chst eventuell vorhandene Distributionspakete, die veraltet sein k\u00f6nnen, und installiere die f\u00fcr HTTPS-Repositories n\u00f6tigen Pakete:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Alte \/ Distributions-Pakete entfernen (falls vorhanden)\nfor pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; done\n\n# Grundpakete\nsudo apt-get update\nsudo apt-get install -y ca-certificates curl<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\"># Alte \/ Distributions-Pakete entfernen (falls vorhanden)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> pkg <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #9ECBFF\"> docker.io<\/span><span style=\"color: #9ECBFF\"> docker-doc<\/span><span style=\"color: #9ECBFF\"> docker-compose<\/span><span style=\"color: #9ECBFF\"> docker-compose-v2<\/span><span style=\"color: #9ECBFF\"> podman-docker<\/span><span style=\"color: #9ECBFF\"> containerd<\/span><span style=\"color: #9ECBFF\"> runc<\/span><span style=\"color: #E1E4E8\">; <\/span><span style=\"color: #F97583\">do<\/span><span style=\"color: #B392F0\"> sudo<\/span><span style=\"color: #9ECBFF\"> apt-get<\/span><span style=\"color: #9ECBFF\"> remove<\/span><span style=\"color: #79B8FF\"> -y<\/span><span style=\"color: #E1E4E8\"> $pkg; <\/span><span style=\"color: #F97583\">done<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Grundpakete<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> apt-get<\/span><span style=\"color: #9ECBFF\"> update<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> apt-get<\/span><span style=\"color: #9ECBFF\"> install<\/span><span style=\"color: #79B8FF\"> -y<\/span><span style=\"color: #9ECBFF\"> ca-certificates<\/span><span style=\"color: #9ECBFF\"> curl<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">2. Docker-GPG-Schl\u00fcssel hinterlegen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Lege das Keyring-Verzeichnis an und importiere den offiziellen Signaturschl\u00fcssel. Ersetze <code>ubuntu<\/code> durch <code>debian<\/code>, wenn du Debian nutzt:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>sudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> install<\/span><span style=\"color: #79B8FF\"> -m<\/span><span style=\"color: #79B8FF\"> 0755<\/span><span style=\"color: #79B8FF\"> -d<\/span><span style=\"color: #9ECBFF\"> \/etc\/apt\/keyrings<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> curl<\/span><span style=\"color: #79B8FF\"> -fsSL<\/span><span style=\"color: #9ECBFF\"> https:\/\/download.docker.com\/linux\/ubuntu\/gpg<\/span><span style=\"color: #79B8FF\"> -o<\/span><span style=\"color: #9ECBFF\"> \/etc\/apt\/keyrings\/docker.asc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> chmod<\/span><span style=\"color: #9ECBFF\"> a+r<\/span><span style=\"color: #9ECBFF\"> \/etc\/apt\/keyrings\/docker.asc<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">3. Repository einbinden<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcge das Docker-Repository passend zu deiner Distribution und Architektur hinzu. F\u00fcr <strong>Debian<\/strong> ersetzt du in der URL <code>ubuntu<\/code> durch <code>debian<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>echo \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc] https:\/\/download.docker.com\/linux\/ubuntu \\\n  $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\nsudo apt-get update<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #79B8FF\">echo<\/span><span style=\"color: #79B8FF\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9ECBFF\">  \"deb [arch=$(<\/span><span style=\"color: #B392F0\">dpkg<\/span><span style=\"color: #79B8FF\"> --print-architecture<\/span><span style=\"color: #9ECBFF\">) signed-by=\/etc\/apt\/keyrings\/docker.asc] https:\/\/download.docker.com\/linux\/ubuntu <\/span><span style=\"color: #79B8FF\">\\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9ECBFF\">  $(<\/span><span style=\"color: #79B8FF\">.<\/span><span style=\"color: #9ECBFF\"> \/etc\/os-release &#x26;&#x26; <\/span><span style=\"color: #79B8FF\">echo<\/span><span style=\"color: #9ECBFF\"> \"<\/span><span style=\"color: #E1E4E8\">$VERSION_CODENAME<\/span><span style=\"color: #9ECBFF\">\") stable\"<\/span><span style=\"color: #F97583\"> |<\/span><span style=\"color: #79B8FF\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  sudo<\/span><span style=\"color: #9ECBFF\"> tee<\/span><span style=\"color: #9ECBFF\"> \/etc\/apt\/sources.list.d\/docker.list<\/span><span style=\"color: #F97583\"> ><\/span><span style=\"color: #9ECBFF\"> \/dev\/null<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> apt-get<\/span><span style=\"color: #9ECBFF\"> update<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">4. Docker Engine und Compose-Plugin installieren<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt installierst du die Engine samt Compose-Plugin. Das Paket <code>docker-compose-plugin<\/code> bringt den Befehl <code>docker compose<\/code> mit:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> apt-get<\/span><span style=\"color: #9ECBFF\"> install<\/span><span style=\"color: #79B8FF\"> -y<\/span><span style=\"color: #9ECBFF\"> docker-ce<\/span><span style=\"color: #9ECBFF\"> docker-ce-cli<\/span><span style=\"color: #9ECBFF\"> containerd.io<\/span><span style=\"color: #9ECBFF\"> docker-buildx-plugin<\/span><span style=\"color: #9ECBFF\"> docker-compose-plugin<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">5. Installation pr\u00fcfen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Kontrolliere zum Schluss die installierte Compose-Version:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>docker compose version\n# Beispielausgabe:\n# Docker Compose version v2.x.x<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">docker<\/span><span style=\"color: #9ECBFF\"> compose<\/span><span style=\"color: #9ECBFF\"> version<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Beispielausgabe:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Docker Compose version v2.x.x<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Optional kannst du deinen Benutzer zur Gruppe <code>docker<\/code> hinzuf\u00fcgen, um Compose ohne <code>sudo<\/code> auszuf\u00fchren. Melde dich danach neu an:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>sudo usermod -aG docker $USER<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">sudo<\/span><span style=\"color: #9ECBFF\"> usermod<\/span><span style=\"color: #79B8FF\"> -aG<\/span><span style=\"color: #9ECBFF\"> docker<\/span><span style=\"color: #E1E4E8\"> $USER<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">docker compose vs. docker-compose: V1 und V2 im Unterschied<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bei der Recherche st\u00f6\u00dft du auf zwei Schreibweisen. Der Unterschied ist wichtig:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>docker-compose<\/code> (mit Bindestrich)<\/strong> war die alte, in Python geschriebene Version 1. Sie wird <strong>nicht mehr weiterentwickelt<\/strong> und sollte f\u00fcr neue Projekte nicht mehr verwendet werden.<\/li>\n\n\n\n<li><strong><code>docker compose<\/code> (mit Leerzeichen)<\/strong> ist die aktuelle Version 2 als Plugin der Docker CLI. Sie ist schneller, wird gepflegt und ist das, was du oben installiert hast.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Falls du \u00e4ltere Anleitungen mit <code>docker-compose up<\/code> findest: Ersetze den Bindestrich einfach durch ein Leerzeichen. Wer die alte Syntax aus Kompatibilit\u00e4tsgr\u00fcnden dennoch braucht, kann zus\u00e4tzlich das Paket <code>docker-compose<\/code> installieren \u2013 f\u00fcr Neuinstallationen ist das aber unn\u00f6tig.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Deine erste docker-compose.yml<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Zeit f\u00fcr ein praktisches Beispiel. Lege einen Projektordner an und darin eine Datei <code>docker-compose.yml<\/code>. Das folgende Setup startet einen Nginx-Webserver auf Port 8080:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>services:\n  web:\n    image: nginx:latest\n    container_name: mein-webserver\n    ports:\n      - \"8080:80\"\n    volumes:\n      - .\/html:\/usr\/share\/nginx\/html:ro\n    restart: unless-stopped<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #85E89D\">services<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">  web<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    image<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">nginx:latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    container_name<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">mein-webserver<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    ports<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">\"8080:80\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    volumes<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      - <\/span><span style=\"color: #9ECBFF\">.\/html:\/usr\/share\/nginx\/html:ro<\/span><\/span>\n<span class=\"line\"><span style=\"color: #85E89D\">    restart<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #9ECBFF\">unless-stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Hinweis am Rande: In Compose v2 ist die fr\u00fcher \u00fcbliche erste Zeile <code>version: \"3\"<\/code> nicht mehr n\u00f6tig und gilt als veraltet. Starte den Stack anschlie\u00dfend im selben Verzeichnis:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>docker compose up -d<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">docker<\/span><span style=\"color: #9ECBFF\"> compose<\/span><span style=\"color: #9ECBFF\"> up<\/span><span style=\"color: #79B8FF\"> -d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Der Parameter <code>-d<\/code> (detached) startet die Container im Hintergrund. Rufe nun <code>http:\/\/SERVER-IP:8080<\/code> im Browser auf \u2013 Nginx begr\u00fc\u00dft dich. Solltest du dabei auf einen Fehler zur Volume-Definition sto\u00dfen, hilft dir unser Beitrag <a href=\"https:\/\/netguide.io\/linux\/de\/docker-compose-refers-to-undefined-volume-loesung\/\">\u201eservice refers to undefined volume\u201c<\/a> weiter.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Die wichtigsten Compose-Befehle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Befehle brauchst du im Alltag am h\u00e4ufigsten. F\u00fchre sie immer im Verzeichnis mit deiner <code>docker-compose.yml<\/code> aus:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Befehl<\/th><th>Wirkung<\/th><\/tr><\/thead><tbody><tr><td><code>docker compose up -d<\/code><\/td><td>Stack im Hintergrund starten (Container werden bei Bedarf gebaut\/erstellt)<\/td><\/tr><tr><td><code>docker compose down<\/code><\/td><td>Stack stoppen und Container entfernen (Volumes bleiben erhalten)<\/td><\/tr><tr><td><code>docker compose ps<\/code><\/td><td>Status der Container im Stack anzeigen<\/td><\/tr><tr><td><code>docker compose logs -f<\/code><\/td><td>Logs live mitverfolgen<\/td><\/tr><tr><td><code>docker compose pull<\/code><\/td><td>Aktuelle Images herunterladen<\/td><\/tr><tr><td><code>docker compose up -d --build<\/code><\/td><td>Images neu bauen und Stack aktualisieren<\/td><\/tr><tr><td><code>docker compose restart<\/code><\/td><td>Dienste neu starten<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e4ufige Fehler vermeiden<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Falsche Einr\u00fcckung in der YAML:<\/strong> YAML ist einr\u00fcckungssensitiv. Verwende ausschlie\u00dflich Leerzeichen (keine Tabs) und halte die Struktur sauber ein.<\/li>\n\n\n\n<li><strong>Portkonflikte:<\/strong> Ist der Host-Port bereits belegt, startet der Container nicht. W\u00e4hle einen freien Port oder gib den blockierenden Dienst frei.<\/li>\n\n\n\n<li><strong>Rechteprobleme bei Volumes:<\/strong> Achte auf die Besitzrechte der gemounteten Verzeichnisse. Eine \u00dcbersicht typischer Stolperfallen findest du in <a href=\"https:\/\/netguide.io\/linux\/de\/die-10-haeufigsten-docker-fehler-mit-loesungen\/\">Die 10 h\u00e4ufigsten Docker-Fehler<\/a>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Fazit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mit dem offiziellen APT-Repository ist <strong>Docker Compose unter Ubuntu und Debian<\/strong> in wenigen Minuten installiert \u2013 inklusive Engine und automatischer Updates. Du nutzt die gepflegte Version 2 (<code>docker compose<\/code>), definierst deine Dienste in einer \u00fcbersichtlichen YAML-Datei und startest komplette Setups mit einem einzigen Befehl. Logische n\u00e4chste Schritte: deine <a href=\"https:\/\/netguide.io\/linux\/de\/docker-volumes-daten-persistent-speichern\/\">Daten mit Docker Volumes sichern<\/a>, die <a href=\"https:\/\/netguide.io\/linux\/de\/docker-netzwerke-erklaert\/\">Container-Vernetzung verstehen<\/a>, deine Container <a href=\"https:\/\/netguide.io\/linux\/de\/docker-container-automatisch-aktualisieren-watchtower\/\">automatisch aktuell halten<\/a> oder sie mit dem <a href=\"https:\/\/netguide.io\/linux\/de\/mit-dem-nginx-proxy-manager-docker-container-ueber-das-internet-verfuegbar-machen\/\">Nginx Proxy Manager<\/a> sicher aus dem Internet erreichbar machen. Feinschliff holst du dir mit <a href=\"https:\/\/netguide.io\/linux\/de\/docker-compose-env-umgebungsvariablen\/\">Umgebungsvariablen &amp; .env<\/a> und <a href=\"https:\/\/netguide.io\/linux\/de\/docker-restart-policy-container-automatisch-starten\/\">Restart-Policies<\/a>.<\/p>\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTI3MTY4MjY1OTMiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>Docker Compose unter Ubuntu und Debian installieren: Schritt f\u00fcr Schritt zum Compose-Plugin v2, erste docker-compose.yml und die wichtigsten Befehle.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[231,9],"tags":[],"class_list":["post-4914","post","type-post","status-publish","format-standard","hentry","category-docker","category-linux"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Tobias Pries","author_link":"https:\/\/netguide.io\/linux\/author\/tobias-pries\/"},"uagb_comment_info":0,"uagb_excerpt":"Docker Compose unter Ubuntu und Debian installieren: Schritt f\u00fcr Schritt zum Compose-Plugin v2, erste docker-compose.yml und die wichtigsten Befehle.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/comments?post=4914"}],"version-history":[{"count":2,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4914\/revisions"}],"predecessor-version":[{"id":4939,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4914\/revisions\/4939"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=4914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=4914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=4914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}