Update gestio_dockers.md

This commit is contained in:
Max HeadRoom 2025-08-26 09:12:44 +02:00
parent b88525dd1c
commit 46d1a342bc

View File

@ -1,3 +1,242 @@
<nav id="breadcrumbs" data-pagefind-ignore="" class="breadcrumbs mb-4 flex min-w-0 items-center gap-2 text-gray-400 dark:text-gray-300"><a href="https://docs.docker.com/" class="link truncate">Home</a>
<span>/</span>
<a href="https://docs.docker.com/manuals/" class="link truncate">Manuals</a>
<span>/</span>
<a href="https://docs.docker.com/engine/" class="link truncate">Docker Engine</a>
<span>/</span>
<a href="https://docs.docker.com/engine/install/" class="link truncate">Install</a>
<span>/</span>
<span data-pagefind-meta="breadcrumbs:Home / Manuals / Docker Engine / Install" class="truncate">Debian</span></nav><div class="flex items-start justify-between"><h1 data-pagefind-weight="10">Install Docker Engine on Debian</h1><div class="md-dropdown ml-auto hidden lg:block"><details id="markdownDropdown" class="ml-3 group relative z-10 inline-block" data-heap-id="markdown-dropdown"><summary class="dropdown-base hover:bg-gray-50 dark:hover:bg-gray-900 inline-flex cursor-pointer items-center gap-0 py-1 pl-2 text-sm font-semibold transition-colors" data-heap-id="markdown-dropdown-toggle"><span class="font-normal">Page options</span>
<span class="icon-svg transition-transform group-open:rotate-180"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M464-376 306-533q-2-2-3.5-4.76-1.5-2.77-1.5-5.92.0-6.32 4.13-10.82 4.12-4.5 10.87-4.5h328q6.75.0 10.88 4.64 4.12 4.63 4.12 10.81.0 1.55-5 10.55L496-376q-3 3-7.06 5t-8.94 2q-4.87.0-8.94-2-4.06-2-7.06-5z"></path></svg>
</span><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></summary><div class="dropdown-base absolute right-0 z-50 mt-1 w-65 origin-top-right p-2 text-sm shadow-md [display:none] group-open:[display:block]" data-heap-id="markdown-dropdown-menu"><button onclick="copyMarkdown()" data-heap-id="copy-markdown-button" class="sub-button">
<span class="icon-svg mt-[2px] text-base leading-none"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg>
</span><span class="icon-svg hidden mt-[2px] text-base leading-none"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span><div class="leading-tight"><div class="text-base">Copy page as Markdown for LLMs</div></div></button>
<button onclick="viewPlainText()" data-heap-id="view-markdown-button" class="sub-button">
<span class="icon-svg mt-[2px] text-base leading-none"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M349-250h262q12.75.0 21.38-8.68 8.62-8.67 8.62-21.5.0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H349q-12.75.0-21.37 8.68-8.63 8.67-8.63 21.5.0 12.82 8.63 21.32 8.62 8.5 21.37 8.5zm0-170h262q12.75.0 21.38-8.68 8.62-8.67 8.62-21.5.0-12.82-8.62-21.32-8.63-8.5-21.38-8.5H349q-12.75.0-21.37 8.68-8.63 8.67-8.63 21.5.0 12.82 8.63 21.32 8.62 8.5 21.37 8.5zM220-80q-24 0-42-18t-18-42v-680q0-24 18-42t42-18h336q12.44.0 23.72 5T599-862l183 183q8 8 13 19.28t5 23.72v496q0 24-18 42t-42 18H220zm331-584q0 12.75 8.63 21.37Q568.25-634 581-634h159L551-820v156z"></path></svg></span><div class="leading-tight"><div class="text-base">View page as plain text</div></div></button>
<button onclick="openInDocsAI()" data-heap-id="search-docs-ai-button" class="sub-button">
<span class="icon-svg mt-[2px] text-base leading-none"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M378-329q-108.16.0-183.08-75Q120-479 120-585t75-181 181.5-75 181 75T632-584.85Q632-542 618-502t-42 75l242 240q9 8.56 9 21.78T818-143t-22.22 9-21.78-9L533-384q-30 26-69.96 40.5Q423.08-329 378-329zm-1-60q81.25.0 138.13-57.5Q572-504 572-585t-56.87-138.5Q458.25-781 377-781q-82.08.0-139.54 57.5T180-585t57.46 138.5T377-389z"></path></svg></span><div class="leading-tight"><div class="text-base">Ask questions with Docs AI</div></div></button>
<button onclick="openInClaude()" data-heap-id="search-docs-ai-button" class="sub-button">
<span class="icon-svg mt-[2px] text-base leading-none"><svg fill="currentcolor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97.0 01-.104-.729L6.283.134 6.696.0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"></path></svg></span><div class="leading-tight"><div class="text-base">Open in Claude</div></div></button></div></details><script>function getCurrentPlaintextUrl(){const e=window.location.href.split("#")[0].replace(/\/$/,"");return`${e}/index.md`}function copyMarkdown(){fetch(getCurrentPlaintextUrl()).then(e=>e.text()).then(e=>{navigator.clipboard.writeText(e).then(()=>{const e=document.querySelector('[data-heap-id="copy-markdown-button"]');if(!e)return;const t=e.querySelectorAll(".icon-svg"),n=t[0],s=t[1];n.classList.add("hidden"),s.classList.remove("hidden"),setTimeout(()=>{n.classList.remove("hidden"),s.classList.add("hidden")},2e3)})}).catch(e=>{console.error("Error copying markdown:",e)})}function viewPlainText(){window.open(getCurrentPlaintextUrl(),"_blank")}function openInDocsAI(){const e=document.querySelector(".open-kapa-widget");e?e.click():alert("Couldn't find Docs AI.")}function openInClaude(){const e=getCurrentPlaintextUrl(),t=`Read ${e} so I can ask questions about it.`,n=encodeURIComponent(t),s=`https://claude.ai/new?q=${n}`;window.open(s,"_blank")}</script></div></div><div class="block lg:hidden"><div data-pagefind-ignore="" class="not-prose"><div class="pb-0 text-lg lg:pb-2">Table of contents</div><nav class="toc"><ul class="pl-2"><li><a class="link lg:no-underline" href="#prerequisites">Prerequisites</a></li><ul class="pl-2"><li><a class="link lg:no-underline" href="#firewall-limitations">Firewall limitations</a></li><li><a class="link lg:no-underline" href="#os-requirements">OS requirements</a></li><li><a class="link lg:no-underline" href="#uninstall-old-versions">Uninstall old versions</a></li></ul><li><a class="link lg:no-underline" href="#installation-methods">Installation methods</a></li><ul class="pl-2"><li><a class="link lg:no-underline" href="#install-using-the-repository">Install using the <code>apt</code> repository</a></li><ul class="pl-2"><li><a class="link lg:no-underline" href="#upgrade-docker-engine">Upgrade Docker Engine</a></li></ul><li><a class="link lg:no-underline" href="#install-from-a-package">Install from a package</a></li><ul class="pl-2"><li><a class="link lg:no-underline" href="#upgrade-docker-engine-1">Upgrade Docker Engine</a></li></ul><li><a class="link lg:no-underline" href="#install-using-the-convenience-script">Install using the convenience script</a></li><ul class="pl-2"><li><a class="link lg:no-underline" href="#install-pre-releases">Install pre-releases</a></li><li><a class="link lg:no-underline" href="#upgrade-docker-after-using-the-convenience-script">Upgrade Docker after using the convenience script</a></li></ul></ul><li><a class="link lg:no-underline" href="#uninstall-docker-engine">Uninstall Docker Engine</a></li><li><a class="link lg:no-underline" href="#next-steps">Next steps</a></li></ul></nav></div><hr></div><p>To get started with Docker Engine on Debian, make sure you
<a class="link" href="#prerequisites">meet the prerequisites</a>, and then follow the
<a class="link" href="#installation-methods">installation steps</a>.</p><h2 class="scroll-mt-20" id="prerequisites"><a class="text-black dark:text-white no-underline hover:underline" href="#prerequisites">Prerequisites</a></h2><h3 class="scroll-mt-20" id="firewall-limitations"><a class="text-black dark:text-white no-underline hover:underline" href="#firewall-limitations">Firewall limitations</a></h3><blockquote class="admonition admonition-warning admonition not-prose"><div class="admonition-header"><span class="admonition-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><mask id="mask0_5432_2018" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="2" width="24" height="21"><path d="M11.9998 9.99999V14m0 4H12.0098M10.6151 4.89171 2.39019 19.0983c-.45621.788-.68431 1.182-.6506 1.5054C1.769 20.8857 1.91677 21.142 2.14613 21.3088 2.40908 21.5 2.86435 21.5 3.77487 21.5H20.2246C21.1352 21.5 21.5904 21.5 21.8534 21.3088 22.0827 21.142 22.2305 20.8857 22.2599 20.6037 22.2936 20.2803 22.0655 19.8863 21.6093 19.0983L13.3844 4.89171C12.9299 4.10654 12.7026 3.71396 12.4061 3.58211c-.258700000000001-.11501-.554-.11501-.8126.0C11.2969 3.71396 11.0696 4.10655 10.6151 4.89171z" stroke="#6c7e9d" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></mask><g mask="url(#mask0_5432_2018)"><rect width="24" height="24" fill="currentcolor" fill-opacity=".8"></rect></g></svg>
</span><span class="admonition-title">Warning</span></div><div class="admonition-content"><p>Before you install Docker, make sure you consider the following
security implications and firewall incompatibilities.</p></div></blockquote><ul><li>If you use ufw or firewalld to manage firewall settings, be aware that
when you expose container ports using Docker, these ports bypass your
firewall rules. For more information, refer to
<a class="link" href="https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw">Docker and ufw</a>.</li><li>Docker is only compatible with <code>iptables-nft</code> and <code>iptables-legacy</code>.
Firewall rules created with <code>nft</code> are not supported on a system with Docker installed.
Make sure that any firewall rulesets you use are created with <code>iptables</code> or <code>ip6tables</code>,
and that you add them to the <code>DOCKER-USER</code> chain,
see
<a class="link" href="https://docs.docker.com/engine/network/packet-filtering-firewalls/">Packet filtering and firewalls</a>.</li></ul><h3 class="scroll-mt-20" id="os-requirements"><a class="text-black dark:text-white no-underline hover:underline" href="#os-requirements">OS requirements</a></h3><p>To install Docker Engine, you need the 64-bit version of one of these Debian
versions:</p><ul><li>Debian Trixie 13 (testing)</li><li>Debian Bookworm 12 (stable)</li><li>Debian Bullseye 11 (oldstable)</li></ul><p>Docker Engine for Debian is compatible with x86_64 (or amd64), armhf, arm64,
and ppc64le (ppc64el) architectures.</p><h3 class="scroll-mt-20" id="uninstall-old-versions"><a class="text-black dark:text-white no-underline hover:underline" href="#uninstall-old-versions">Uninstall old versions</a></h3><p>Before you can install Docker Engine, you need to uninstall any conflicting packages.</p><p>Your Linux distribution may provide unofficial Docker packages, which may conflict
with the official packages provided by Docker. You must uninstall these packages
before you install the official version of Docker Engine.</p><p>The unofficial packages to uninstall are:</p><ul><li><code>docker.io</code></li><li><code>docker-compose</code></li><li><code>docker-doc</code></li><li><code>podman-docker</code></li></ul><p>Moreover, Docker Engine depends on <code>containerd</code> and <code>runc</code>. Docker Engine
bundles these dependencies as one bundle: <code>containerd.io</code>. If you have
installed the <code>containerd</code> or <code>runc</code> previously, uninstall them to avoid
conflicts with the versions bundled with Docker Engine.</p><p>Run the following command to uninstall all conflicting packages:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBmb3IgcGtnIGluIGRvY2tlci5pbyBkb2NrZXItZG9jIGRvY2tlci1jb21wb3NlIHBvZG1hbi1kb2NrZXIgY29udGFpbmVyZCBydW5jOyBkbyBzdWRvIGFwdC1nZXQgcmVtb3ZlICRwa2c7IGRvbmU=', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> <span class="k">for</span> pkg in docker.io docker-doc docker-compose podman-docker containerd runc<span class="p">;</span> <span class="k">do</span> sudo apt-get remove <span class="nv">$pkg</span><span class="p">;</span> <span class="k">done</span>
</span></span></code></pre></div></div></div></div><p><code>apt-get</code> might report that you have none of these packages installed.</p><p>Images, containers, volumes, and networks stored in <code>/var/lib/docker/</code> aren't
automatically removed when you uninstall Docker. If you want to start with a
clean installation, and prefer to clean up any existing data, read the
<a class="link" href="#uninstall-docker-engine">uninstall Docker Engine</a> section.</p><h2 class="scroll-mt-20" id="installation-methods"><a class="text-black dark:text-white no-underline hover:underline" href="#installation-methods">Installation methods</a></h2><p>You can install Docker Engine in different ways, depending on your needs:</p><ul><li><p>Docker Engine comes bundled with
<a class="link" href="https://docs.docker.com/desktop/setup/install/linux/">Docker Desktop for Linux</a>. This is
the easiest and quickest way to get started.</p></li><li><p>Set up and install Docker Engine from
<a class="link" href="#install-using-the-repository">Docker's <code>apt</code> repository</a>.</p></li><li><p><a class="link" href="#install-from-a-package">Install it manually</a> and manage upgrades manually.</p></li><li><p>Use a <a class="link" href="#install-using-the-convenience-script">convenience script</a>. Only
recommended for testing and development environments.</p></li></ul><h3 class="scroll-mt-20" id="install-using-the-repository"><a class="text-black dark:text-white no-underline hover:underline" href="#install-using-the-repository">Install using the <code>apt</code> repository</a></h3><p>Before you install Docker Engine for the first time on a new host machine, you
need to set up the Docker <code>apt</code> repository. Afterward, you can install and update
Docker from the repository.</p><ol><li><p>Set up Docker's <code>apt</code> repository.</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'IyBBZGQgRG9ja2VyJ3Mgb2ZmaWNpYWwgR1BHIGtleToKc3VkbyBhcHQtZ2V0IHVwZGF0ZQpzdWRvIGFwdC1nZXQgaW5zdGFsbCBjYS1jZXJ0aWZpY2F0ZXMgY3VybApzdWRvIGluc3RhbGwgLW0gMDc1NSAtZCAvZXRjL2FwdC9rZXlyaW5ncwpzdWRvIGN1cmwgLWZzU0wgaHR0cHM6Ly9kb3dubG9hZC5kb2NrZXIuY29tL2xpbnV4L2RlYmlhbi9ncGcgLW8gL2V0Yy9hcHQva2V5cmluZ3MvZG9ja2VyLmFzYwpzdWRvIGNobW9kIGErciAvZXRjL2FwdC9rZXlyaW5ncy9kb2NrZXIuYXNjCgojIEFkZCB0aGUgcmVwb3NpdG9yeSB0byBBcHQgc291cmNlczoKZWNobyBcCiAgImRlYiBbYXJjaD0kKGRwa2cgLS1wcmludC1hcmNoaXRlY3R1cmUpIHNpZ25lZC1ieT0vZXRjL2FwdC9rZXlyaW5ncy9kb2NrZXIuYXNjXSBodHRwczovL2Rvd25sb2FkLmRvY2tlci5jb20vbGludXgvZGViaWFuIFwKICAkKC4gL2V0Yy9vcy1yZWxlYXNlICYmIGVjaG8gIiRWRVJTSU9OX0NPREVOQU1FIikgc3RhYmxlIiB8IFwKICBzdWRvIHRlZSAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9kb2NrZXIubGlzdCA+IC9kZXYvbnVsbApzdWRvIGFwdC1nZXQgdXBkYXRl', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Add Docker's official GPG key:</span>
</span></span><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get install ca-certificates curl
</span></span><span class="line"><span class="cl">sudo install -m <span class="m">0755</span> -d /etc/apt/keyrings
</span></span><span class="line"><span class="cl">sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
</span></span><span class="line"><span class="cl">sudo chmod a+r /etc/apt/keyrings/docker.asc
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Add the repository to Apt sources:</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> <span class="s2">"deb [arch=</span><span class="k">$(</span>dpkg --print-architecture<span class="k">)</span><span class="s2"> signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
</span></span></span><span class="line"><span class="cl"><span class="s2"> </span><span class="k">$(</span>. /etc/os-release <span class="o">&amp;&amp;</span> <span class="nb">echo</span> <span class="s2">"</span><span class="nv">$VERSION_CODENAME</span><span class="s2">"</span><span class="k">)</span><span class="s2"> stable"</span> <span class="p">|</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span> sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
</span></span><span class="line"><span class="cl">sudo apt-get update</span></span></code></pre></div></div></div></div><blockquote class="admonition admonition-note admonition not-prose"><div class="admonition-header"><span class="admonition-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 16V12m0-4H12.01M22 12c0 5.5228-4.4772 10-10 10C6.47715 22 2 17.5228 2 12 2 6.47715 6.47715 2 12 2c5.5228.0 10 4.47715 10 10z" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>
</span><span class="admonition-title">Note</span></div><div class="admonition-content"><p>If you use a derivative distribution, such as Kali Linux,
you may need to substitute the part of this command that's expected to
print the version codename:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCguIC9ldGMvb3MtcmVsZWFzZSAmJiBlY2hvICIkVkVSU0lPTl9DT0RFTkFNRSIp', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span><span class="o">(</span>. /etc/os-release <span class="o">&amp;&amp;</span> <span class="nb">echo</span> <span class="s2">"</span><span class="nv">$VERSION_CODENAME</span><span class="s2">"</span><span class="o">)</span>
</span></span></code></pre></div></div></div></div><p>Replace this part with the codename of the corresponding Debian release,
such as <code>bookworm</code>.</p></div></blockquote></li><li><p>Install the Docker packages.</p><div class="tabs" x-data="{ selected: 'Latest' }" aria-role="tabpanel"><div aria-role="tablist" class="tablist"><button class="tab-item border-blue border-b-4 dark:border-b-blue-600" :class="selected === 'Latest' &amp;&amp;
'border-blue border-b-4 dark:border-b-blue-600'" @click="selected = 'Latest'">
Latest
</button>
<button class="tab-item" :class="selected === 'Specific-version' &amp;&amp;
'border-blue border-b-4 dark:border-b-blue-600'" @click="selected = 'Specific-version'">
Specific version</button></div><div><div aria-role="tab" :class="selected !== 'Latest' &amp;&amp; 'hidden'" class=""><p>To install the latest version, run:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIGFwdC1nZXQgaW5zdGFsbCBkb2NrZXItY2UgZG9ja2VyLWNlLWNsaSBjb250YWluZXJkLmlvIGRvY2tlci1idWlsZHgtcGx1Z2luIGRvY2tlci1jb21wb3NlLXBsdWdpbg==', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
</span></span></code></pre></div></div></div></div></div><div aria-role="tab" :class="selected !== 'Specific-version' &amp;&amp; 'hidden'" class="hidden"><p>To install a specific version of Docker Engine, start by listing the
available versions in the repository:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'IyBMaXN0IHRoZSBhdmFpbGFibGUgdmVyc2lvbnM6CiQgYXB0LWNhY2hlIG1hZGlzb24gZG9ja2VyLWNlIHwgYXdrICd7IHByaW50ICQzIH0nCgo1OjI4LjMuMy0xfmRlYmlhbi4xMn5ib29rd29ybQo1OjI4LjMuMi0xfmRlYmlhbi4xMn5ib29rd29ybQouLi4=', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">#</span> List the available versions:
</span></span><span class="line"><span class="cl"><span class="gp">$</span> apt-cache madison docker-ce <span class="p">|</span> awk <span class="s1">'{ print $3 }'</span>
</span></span><span class="line"><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="cl"><span class="err"></span><span class="go">5:28.3.3-1~debian.12~bookworm
</span></span></span><span class="line"><span class="cl"><span class="go">5:28.3.2-1~debian.12~bookworm
</span></span></span><span class="line"><span class="cl"><span class="go">...
</span></span></span></code></pre></div></div></div></div><p>Select the desired version and install:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBWRVJTSU9OX1NUUklORz01OjI4LjMuMy0xfmRlYmlhbi4xMn5ib29rd29ybQokIHN1ZG8gYXB0LWdldCBpbnN0YWxsIGRvY2tlci1jZT0kVkVSU0lPTl9TVFJJTkcgZG9ja2VyLWNlLWNsaT0kVkVSU0lPTl9TVFJJTkcgY29udGFpbmVyZC5pbyBkb2NrZXItYnVpbGR4LXBsdWdpbiBkb2NrZXItY29tcG9zZS1wbHVnaW4=', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> <span class="nv">VERSION_STRING</span><span class="o">=</span>5:28.3.3-1~debian.12~bookworm
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo apt-get install docker-ce<span class="o">=</span><span class="nv">$VERSION_STRING</span> docker-ce-cli<span class="o">=</span><span class="nv">$VERSION_STRING</span> containerd.io docker-buildx-plugin docker-compose-plugin
</span></span></code></pre></div></div></div></div></div></div></div></li><li><p>Verify that the installation is successful by running the <code>hello-world</code> image:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIGRvY2tlciBydW4gaGVsbG8td29ybGQ=', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo docker run hello-world
</span></span></code></pre></div></div></div></div><p>This command downloads a test image and runs it in a container. When the
container runs, it prints a confirmation message and exits.</p></li></ol><p>You have now successfully installed and started Docker Engine.</p><blockquote class="admonition admonition-tip admonition not-prose"><div class="admonition-header"><span class="admonition-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><mask id="mask0_5432_1749" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="17" height="22"><path d="M9.93896 22H14.939m-4.5-12h4m-2 0v6m3-.6736c2.3649-1.1235 4-3.534 4-6.3264.0-3.86599-3.134-7-7-7C8.57297 2 5.43896 5.13401 5.43896 9c0 2.7924 1.63506 5.2029 4 6.3264V16c0 .931899999999999.0 1.3978.15225 1.7654C9.79419 18.2554 10.1835 18.6448 10.6736 18.8478 11.0411 19 11.5071 19 12.439 19 13.3708 19 13.8368 19 14.2043 18.8478 14.6944 18.6448 15.0837 18.2554 15.2867 17.7654 15.439 17.3978 15.439 16.9319 15.439 16v-.6736z" stroke="#6c7e9d" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></mask><g mask="url(#mask0_5432_1749)"><rect width="24" height="24" fill="currentcolor" fill-opacity=".8"></rect></g></svg>
</span><span class="admonition-title">Tip</span></div><div class="admonition-content"><p>Receiving errors when trying to run without root?</p><p>The <code>docker</code> user group exists but contains no users, which is why youre required
to use <code>sudo</code> to run Docker commands. Continue to
<a class="link" href="/engine/install/linux-postinstall">Linux postinstall</a>
to allow non-privileged users to run Docker commands and for other optional configuration steps.</p></div></blockquote><h4 class="scroll-mt-20" id="upgrade-docker-engine"><a class="text-black dark:text-white no-underline hover:underline" href="#upgrade-docker-engine">Upgrade Docker Engine</a></h4><p>To upgrade Docker Engine, follow step 2 of the
<a class="link" href="#install-using-the-repository">installation instructions</a>,
choosing the new version you want to install.</p><h3 class="scroll-mt-20" id="install-from-a-package"><a class="text-black dark:text-white no-underline hover:underline" href="#install-from-a-package">Install from a package</a></h3><p>If you can't use Docker's <code>apt</code> repository to install Docker Engine, you can
download the <code>deb</code> file for your release and install it manually. You need to
download a new file each time you want to upgrade Docker Engine.</p><ol><li><p>Go to <a class="link" href="https://download.docker.com/linux/debian/dists/" rel="noopener"><code>https://download.docker.com/linux/debian/dists/</code></a>.</p></li><li><p>Select your Debian version in the list.</p></li><li><p>Go to <code>pool/stable/</code> and select the applicable architecture (<code>amd64</code>,
<code>armhf</code>, <code>arm64</code>, or <code>s390x</code>).</p></li><li><p>Download the following <code>deb</code> files for the Docker Engine, CLI, containerd,
and Docker Compose packages:</p><ul><li><code>containerd.io_&lt;version&gt;_&lt;arch&gt;.deb</code></li><li><code>docker-ce_&lt;version&gt;_&lt;arch&gt;.deb</code></li><li><code>docker-ce-cli_&lt;version&gt;_&lt;arch&gt;.deb</code></li><li><code>docker-buildx-plugin_&lt;version&gt;_&lt;arch&gt;.deb</code></li><li><code>docker-compose-plugin_&lt;version&gt;_&lt;arch&gt;.deb</code></li></ul></li><li><p>Install the <code>.deb</code> packages. Update the paths in the following example to
where you downloaded the Docker packages.</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIGRwa2cgLWkgLi9jb250YWluZXJkLmlvXzx2ZXJzaW9uPl88YXJjaD4uZGViIFwKICAuL2RvY2tlci1jZV88dmVyc2lvbj5fPGFyY2g+LmRlYiBcCiAgLi9kb2NrZXItY2UtY2xpXzx2ZXJzaW9uPl88YXJjaD4uZGViIFwKICAuL2RvY2tlci1idWlsZHgtcGx1Z2luXzx2ZXJzaW9uPl88YXJjaD4uZGViIFwKICAuL2RvY2tlci1jb21wb3NlLXBsdWdpbl88dmVyc2lvbj5fPGFyY2g+LmRlYg==', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo dpkg -i ./containerd.io_&lt;version&gt;_&lt;arch&gt;.deb <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span><span class="go"> ./docker-ce_&lt;version&gt;_&lt;arch&gt;.deb \
</span></span></span><span class="line"><span class="cl"><span class="go"> ./docker-ce-cli_&lt;version&gt;_&lt;arch&gt;.deb \
</span></span></span><span class="line"><span class="cl"><span class="go"> ./docker-buildx-plugin_&lt;version&gt;_&lt;arch&gt;.deb \
</span></span></span><span class="line"><span class="cl"><span class="go"> ./docker-compose-plugin_&lt;version&gt;_&lt;arch&gt;.deb
</span></span></span></code></pre></div></div></div></div><p>The Docker daemon starts automatically.</p></li><li><p>Verify that the installation is successful by running the <code>hello-world</code> image:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIHNlcnZpY2UgZG9ja2VyIHN0YXJ0CiQgc3VkbyBkb2NrZXIgcnVuIGhlbGxvLXdvcmxk', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo service docker start
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo docker run hello-world
</span></span></code></pre></div></div></div></div><p>This command downloads a test image and runs it in a container. When the
container runs, it prints a confirmation message and exits.</p></li></ol><p>You have now successfully installed and started Docker Engine.</p><blockquote class="admonition admonition-tip admonition not-prose"><div class="admonition-header"><span class="admonition-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><mask id="mask0_5432_1749" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="17" height="22"><path d="M9.93896 22H14.939m-4.5-12h4m-2 0v6m3-.6736c2.3649-1.1235 4-3.534 4-6.3264.0-3.86599-3.134-7-7-7C8.57297 2 5.43896 5.13401 5.43896 9c0 2.7924 1.63506 5.2029 4 6.3264V16c0 .931899999999999.0 1.3978.15225 1.7654C9.79419 18.2554 10.1835 18.6448 10.6736 18.8478 11.0411 19 11.5071 19 12.439 19 13.3708 19 13.8368 19 14.2043 18.8478 14.6944 18.6448 15.0837 18.2554 15.2867 17.7654 15.439 17.3978 15.439 16.9319 15.439 16v-.6736z" stroke="#6c7e9d" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></mask><g mask="url(#mask0_5432_1749)"><rect width="24" height="24" fill="currentcolor" fill-opacity=".8"></rect></g></svg>
</span><span class="admonition-title">Tip</span></div><div class="admonition-content"><p>Receiving errors when trying to run without root?</p><p>The <code>docker</code> user group exists but contains no users, which is why youre required
to use <code>sudo</code> to run Docker commands. Continue to
<a class="link" href="/engine/install/linux-postinstall">Linux postinstall</a>
to allow non-privileged users to run Docker commands and for other optional configuration steps.</p></div></blockquote><h4 class="scroll-mt-20" id="upgrade-docker-engine-1"><a class="text-black dark:text-white no-underline hover:underline" href="#upgrade-docker-engine-1">Upgrade Docker Engine</a></h4><p>To upgrade Docker Engine, download the newer package files and repeat the
<a class="link" href="#install-from-a-package">installation procedure</a>, pointing to the new files.</p><h3 class="scroll-mt-20" id="install-using-the-convenience-script"><a class="text-black dark:text-white no-underline hover:underline" href="#install-using-the-convenience-script">Install using the convenience script</a></h3><p>Docker provides a convenience script at
<a class="link" href="https://get.docker.com/" rel="noopener">https://get.docker.com/</a> to install Docker into
development environments non-interactively. The convenience script isn't
recommended for production environments, but it's useful for creating a
provisioning script tailored to your needs. Also refer to the
<a class="link" href="#install-using-the-repository">install using the repository</a> steps to learn
about installation steps to install using the package repository. The source code
for the script is open source, and you can find it in the
<a class="link" href="https://github.com/docker/docker-install" rel="noopener"><code>docker-install</code> repository on GitHub</a>.</p><p>Always examine scripts downloaded from the internet before running them locally.
Before installing, make yourself familiar with potential risks and limitations
of the convenience script:</p><ul><li>The script requires <code>root</code> or <code>sudo</code> privileges to run.</li><li>The script attempts to detect your Linux distribution and version and
configure your package management system for you.</li><li>The script doesn't allow you to customize most installation parameters.</li><li>The script installs dependencies and recommendations without asking for
confirmation. This may install a large number of packages, depending on the
current configuration of your host machine.</li><li>By default, the script installs the latest stable release of Docker,
containerd, and runc. When using this script to provision a machine, this may
result in unexpected major version upgrades of Docker. Always test upgrades in
a test environment before deploying to your production systems.</li><li>The script isn't designed to upgrade an existing Docker installation. When
using the script to update an existing installation, dependencies may not be
updated to the expected version, resulting in outdated versions.</li></ul><blockquote class="admonition admonition-tip admonition not-prose"><div class="admonition-header"><span class="admonition-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none"><mask id="mask0_5432_1749" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="1" width="17" height="22"><path d="M9.93896 22H14.939m-4.5-12h4m-2 0v6m3-.6736c2.3649-1.1235 4-3.534 4-6.3264.0-3.86599-3.134-7-7-7C8.57297 2 5.43896 5.13401 5.43896 9c0 2.7924 1.63506 5.2029 4 6.3264V16c0 .931899999999999.0 1.3978.15225 1.7654C9.79419 18.2554 10.1835 18.6448 10.6736 18.8478 11.0411 19 11.5071 19 12.439 19 13.3708 19 13.8368 19 14.2043 18.8478 14.6944 18.6448 15.0837 18.2554 15.2867 17.7654 15.439 17.3978 15.439 16.9319 15.439 16v-.6736z" stroke="#6c7e9d" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></mask><g mask="url(#mask0_5432_1749)"><rect width="24" height="24" fill="currentcolor" fill-opacity=".8"></rect></g></svg>
</span><span class="admonition-title">Tip</span></div><div class="admonition-content"><p>Preview script steps before running. You can run the script with the <code>--dry-run</code> option to learn what steps the
script will run when invoked:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBjdXJsIC1mc1NMIGh0dHBzOi8vZ2V0LmRvY2tlci5jb20gLW8gZ2V0LWRvY2tlci5zaAokIHN1ZG8gc2ggLi9nZXQtZG9ja2VyLnNoIC0tZHJ5LXJ1bg==', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> curl -fsSL https://get.docker.com -o get-docker.sh
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo sh ./get-docker.sh --dry-run
</span></span></code></pre></div></div></div></div></div></blockquote><p>This example downloads the script from
<a class="link" href="https://get.docker.com/" rel="noopener">https://get.docker.com/</a> and runs it to install the
latest stable release of Docker on Linux:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBjdXJsIC1mc1NMIGh0dHBzOi8vZ2V0LmRvY2tlci5jb20gLW8gZ2V0LWRvY2tlci5zaAokIHN1ZG8gc2ggZ2V0LWRvY2tlci5zaApFeGVjdXRpbmcgZG9ja2VyIGluc3RhbGwgc2NyaXB0LCBjb21taXQ6IDdjYWU1ZjhiMGRlY2MxN2Q2NTcxZjlmNTJlYjg0MGZiYzEzYjI3MzcKPC4uLj4=', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> curl -fsSL https://get.docker.com -o get-docker.sh
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo sh get-docker.sh
</span></span><span class="line"><span class="cl"><span class="go">Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
</span></span></span><span class="line"><span class="cl"><span class="go">&lt;...&gt;
</span></span></span></code></pre></div></div></div></div><p>You have now successfully installed and started Docker Engine. The <code>docker</code>
service starts automatically on Debian based distributions. On <code>RPM</code> based
distributions, such as CentOS, Fedora, RHEL or SLES, you need to start it
manually using the appropriate <code>systemctl</code> or <code>service</code> command. As the message
indicates, non-root users can't run Docker commands by default.</p><blockquote class="admonition not-prose"><p><strong>Use Docker as a non-privileged user, or install in rootless mode?</strong></p><p>The installation script requires <code>root</code> or <code>sudo</code> privileges to install and
use Docker. If you want to grant non-root users access to Docker, refer to the
<a class="link" href="/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user">post-installation steps for Linux</a>.
You can also install Docker without <code>root</code> privileges, or configured to run in
rootless mode. For instructions on running Docker in rootless mode, refer to
<a class="link" href="/engine/security/rootless/">run the Docker daemon as a non-root user (rootless mode)</a>.</p></blockquote><h4 class="scroll-mt-20" id="install-pre-releases"><a class="text-black dark:text-white no-underline hover:underline" href="#install-pre-releases">Install pre-releases</a></h4><p>Docker also provides a convenience script at
<a class="link" href="https://test.docker.com/" rel="noopener">https://test.docker.com/</a> to install pre-releases of
Docker on Linux. This script is equal to the script at <code>get.docker.com</code>, but
configures your package manager to use the test channel of the Docker package
repository. The test channel includes both stable and pre-releases (beta
versions, release-candidates) of Docker. Use this script to get early access to
new releases, and to evaluate them in a testing environment before they're
released as stable.</p><p>To install the latest version of Docker on Linux from the test channel, run:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBjdXJsIC1mc1NMIGh0dHBzOi8vdGVzdC5kb2NrZXIuY29tIC1vIHRlc3QtZG9ja2VyLnNoCiQgc3VkbyBzaCB0ZXN0LWRvY2tlci5zaA==', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> curl -fsSL https://test.docker.com -o test-docker.sh
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo sh test-docker.sh
</span></span></code></pre></div></div></div></div><h4 class="scroll-mt-20" id="upgrade-docker-after-using-the-convenience-script"><a class="text-black dark:text-white no-underline hover:underline" href="#upgrade-docker-after-using-the-convenience-script">Upgrade Docker after using the convenience script</a></h4><p>If you installed Docker using the convenience script, you should upgrade Docker
using your package manager directly. There's no advantage to re-running the
convenience script. Re-running it can cause issues if it attempts to re-install
repositories which already exist on the host machine.</p><h2 class="scroll-mt-20" id="uninstall-docker-engine"><a class="text-black dark:text-white no-underline hover:underline" href="#uninstall-docker-engine">Uninstall Docker Engine</a></h2><ol><li><p>Uninstall the Docker Engine, CLI, containerd, and Docker Compose packages:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIGFwdC1nZXQgcHVyZ2UgZG9ja2VyLWNlIGRvY2tlci1jZS1jbGkgY29udGFpbmVyZC5pbyBkb2NrZXItYnVpbGR4LXBsdWdpbiBkb2NrZXItY29tcG9zZS1wbHVnaW4gZG9ja2VyLWNlLXJvb3RsZXNzLWV4dHJhcw==', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
</span></span></code></pre></div></div></div></div></li><li><p>Images, containers, volumes, or custom configuration files on your host
aren't automatically removed. To delete all images, containers, and volumes:</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIHJtIC1yZiAvdmFyL2xpYi9kb2NrZXIKJCBzdWRvIHJtIC1yZiAvdmFyL2xpYi9jb250YWluZXJk', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo rm -rf /var/lib/docker
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo rm -rf /var/lib/containerd
</span></span></code></pre></div></div></div></div></li><li><p>Remove source list and keyrings</p><div data-pagefind-ignore="" x-data="" x-ref="root" class="group mt-2 mb-4 flex w-full scroll-mt-2 flex-col items-start gap-4 rounded bg-gray-50 p-2 outline outline-1 outline-offset-[-1px] outline-gray-200 dark:bg-gray-900 dark:outline-gray-800"><div class="relative w-full"><div class="syntax-light dark:syntax-dark not-prose w-full"><button x-data="{ code: 'JCBzdWRvIHJtIC9ldGMvYXB0L3NvdXJjZXMubGlzdC5kL2RvY2tlci5saXN0CiQgc3VkbyBybSAvZXRjL2FwdC9rZXlyaW5ncy9kb2NrZXIuYXNj', copying: false }" class="top-1
absolute right-2 z-10 text-gray-300 dark:text-gray-500" title="copy" @click="window.navigator.clipboard.writeText(atob(code).replaceAll(/^[\$&gt;]\s+/gm, ''));
copying = true;
setTimeout(() =&gt; copying = false, 2000);">
<span :class="{ 'group-hover:block' : !copying }" class="icon-svg hidden group-hover:block"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="M3e2-2e2q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H3e2zM180-80q-24 0-42-18t-18-42v-590q0-13 8.5-21.5T150-760t21.5 8.5T180-730v590h470q13 0 21.5 8.5T680-110t-8.5 21.5T650-80H180z"></path></svg></span>
<span :class="{ 'group-hover:block' : copying }" class="icon-svg hidden"><svg width="48" height="48" viewBox="0 -960 960 960"><path d="m421-389-98-98q-9-9-22-9t-23 10q-9 9-9 22t9 22l122 123q9 9 21 9t21-9l239-239q10-10 10-23t-10-23q-10-9-23.5-8.5T635-603L421-389zm59 309q-82 0-155-31.5t-127.5-86-86-127.5T80-480q0-83 31.5-156t86-127T325-848.5 480-880q83 0 156 31.5T763-763t85.5 127T880-480q0 82-31.5 155T763-197.5t-127 86T480-80z"></path></svg></span></button><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-console" data-lang="console"><span class="line"><span class="cl"><span class="gp">$</span> sudo rm /etc/apt/sources.list.d/docker.list
</span></span><span class="line"><span class="cl"><span class="gp">$</span> sudo rm /etc/apt/keyrings/docker.asc
</span></span></code></pre></div></div></div></div></li></ol><p>You have to delete any edited configuration files manually.</p><h2 class="scroll-mt-20" id="next-steps"><a class="text-black dark:text-white no-underline hover:underline" href="#next-steps">Next steps</a></h2><ul><li>Continue to <a class="link" href="https://docs.docker.com/engine/install/linux-postinstall/">Post-installation steps for Linux</a>.</li></ul>
<summary> <summary>
<h2 id="una-pagina-con-trucos-de-docker"><a href="#una-pagina-con-trucos-de-docker" onclick="navigator.clipboard.writeText(this.href);">Una página con trucos de Docker</a><a class="hash-anchor" href="#una-pagina-con-trucos-de-docker" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <h2 id="una-pagina-con-trucos-de-docker"><a href="#una-pagina-con-trucos-de-docker" onclick="navigator.clipboard.writeText(this.href);">Una página con trucos de Docker</a><a class="hash-anchor" href="#una-pagina-con-trucos-de-docker" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2>
https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes-es https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes-es