{"id":795,"date":"2026-01-27T00:21:01","date_gmt":"2026-01-26T16:21:01","guid":{"rendered":"https:\/\/www.db2go.net\/?p=795"},"modified":"2026-01-27T09:52:02","modified_gmt":"2026-01-27T01:52:02","slug":"ubuntu-%e5%ae%89%e8%a3%85-docker-%e8%af%a6%e7%bb%86%e6%ad%a5%e9%aa%a4","status":"publish","type":"post","link":"https:\/\/www.db2go.net\/?p=795","title":{"rendered":"Ubuntu \u5b89\u88c5 Docker \u8be6\u7ec6\u6b65\u9aa4"},"content":{"rendered":"<p>\u4ee5\u4e0b\u8bb0\u5f55\u4e00\u4e0b\u5728 Ubuntu 22.0.4\u4e0a\u5b89\u88c5docker\uff0c\u5e76\u8fdb\u884c\u4e00\u4e9b\u914d\u7f6e\u3002<\/p>\n<h2>\u4e00\u3001\u5b98\u65b9\u63a8\u8350\u5b89\u88c5\u6b65\u9aa4<\/h2>\n<h3>1. \u5378\u8f7d\u65e7\u7248\u672c\uff08\u5982\u6709\uff09<\/h3>\n<pre><code class=\"language-bash line-numbers\">sudo apt-get remove docker docker-engine docker.io containerd runc\n<\/code><\/pre>\n<h3>2. \u66f4\u65b0\u7cfb\u7edf\u5e76\u5b89\u88c5\u4f9d\u8d56<\/h3>\n<pre><code class=\"language-bash line-numbers\">sudo apt-get update\nsudo apt-get install \\\n    ca-certificates \\\n    curl \\\n    gnupg \\\n    lsb-release -y\n<\/code><\/pre>\n<h3>3. \u6dfb\u52a0 Docker \u5b98\u65b9 GPG \u5bc6\u94a5<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u521b\u5efa keyrings \u76ee\u5f55\nsudo mkdir -p \/etc\/apt\/keyrings\n\n# \u4e0b\u8f7d\u5e76\u6dfb\u52a0 GPG \u5bc6\u94a5\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\n\n# \u8bbe\u7f6e\u6b63\u786e\u7684\u6743\u9650\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.gpg\n<\/code><\/pre>\n<h3>4. \u8bbe\u7f6e Docker \u4ed3\u5e93<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u6dfb\u52a0\u4ed3\u5e93\necho \\\n  \"deb [arch=<span class=\"katex math inline\">(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/ubuntu \\<\/span>(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\n# \u66f4\u65b0 apt \u5305\u7d22\u5f15\nsudo apt-get update\n<\/code><\/pre>\n<h3>5. \u5b89\u88c5 Docker Engine<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u5b89\u88c5\u6700\u65b0\u7248\u672c\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y\n\n# \u6216\u8005\u5b89\u88c5\u7279\u5b9a\u7248\u672c\n# \u67e5\u770b\u53ef\u7528\u7248\u672c\napt-cache madison docker-ce\n\n# \u5b89\u88c5\u6307\u5b9a\u7248\u672c\uff08\u4f8b\u5982 24.0.7\uff09\n# sudo apt-get install docker-ce=5:24.0.7-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.7-1~ubuntu.22.04~jammy containerd.io docker-compose-plugin -y\n<\/code><\/pre>\n<h2>\u4e8c\u3001\u5b89\u88c5\u540e\u914d\u7f6e<\/h2>\n<h3>1. \u542f\u52a8 Docker \u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u542f\u52a8 Docker \u670d\u52a1\nsudo systemctl start docker\n\n# \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\nsudo systemctl enable docker\n\n# \u67e5\u770b Docker \u72b6\u6001\nsudo systemctl status docker\n<\/code><\/pre>\n<h3>2. \u5c06\u5f53\u524d\u7528\u6237\u52a0\u5165 docker \u7ec4\uff08\u907f\u514d\u6bcf\u6b21\u4f7f\u7528 sudo\uff09<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u521b\u5efa docker \u7ec4\uff08\u5982\u679c\u4e0d\u5b58\u5728\uff09\nsudo groupadd docker\n\n# \u5c06\u5f53\u524d\u7528\u6237\u52a0\u5165 docker \u7ec4\nsudo usermod -aG docker $USER\n\n# \u66f4\u65b0\u7528\u6237\u7ec4\uff08\u9700\u8981\u91cd\u65b0\u767b\u5f55\u751f\u6548\uff09\nnewgrp docker\n\n# \u6216\u8005\u76f4\u63a5\u767b\u51fa\u518d\u767b\u5f55\n<\/code><\/pre>\n<h3>3. \u9a8c\u8bc1\u5b89\u88c5<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u8fd0\u884c hello-world \u6d4b\u8bd5\ndocker run hello-world\n\n# \u67e5\u770b Docker \u7248\u672c\ndocker --version\ndocker-compose --version\n\n# \u67e5\u770b\u8be6\u7ec6\u4fe1\u606f\ndocker info\n<\/code><\/pre>\n<h2>\u4e09\u3001\u914d\u7f6e\u955c\u50cf\u52a0\u901f\u5668<\/h2>\n<p>\u5728\u62c9\u53d6\u955c\u50cf\u7684\u65f6\u5019\uff0c\u56e0\u4e3a\u5899\u7684\u95ee\u9898\uff0c\u4f1a\u62c9\u53d6\u5931\u8d25\uff0c\u5982\u4e0b\u6240\u793a\uff1a<\/p>\n<pre><code class=\"language-bash line-numbers\">$ docker pull nginx\nUsing default tag: latest\nError response from daemon: Get \"https:\/\/registry-1.docker.io\/v2\/\": context deadline exceeded\n<\/code><\/pre>\n<p>\u9700\u8981\u4fee\u6539daemon.json\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre><code class=\"language-bash line-numbers\"># \u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\nsudo mkdir -p \/etc\/docker\n\n# \u914d\u7f6e\u955c\u50cf\u52a0\u901f\u5668\nsudo tee \/etc\/docker\/daemon.json &lt;&lt;-'EOF'\n{\n  \"registry-mirrors\": [\n    \"https:\/\/docker.mirrors.ustc.edu.cn\",\n    \"https:\/\/hub-mirror.c.163.com\",\n    \"https:\/\/mirror.baidubce.com\",\n    \"https:\/\/registry.docker-cn.com\"\n  ],\n  \"exec-opts\": [\"native.cgroupdriver=systemd\"],\n  \"log-driver\": \"json-file\",\n  \"log-opts\": {\n    \"max-size\": \"100m\"\n  },\n  \"storage-driver\": \"overlay2\"\n}\nEOF\n\n# \u91cd\u542f Docker\nsudo systemctl daemon-reload\nsudo systemctl restart docker\n<\/code><\/pre>\n<p>\u67e5\u770b\u914d\u7f6e\uff1a<\/p>\n<pre><code class=\"language-bash line-numbers\">$ cat \/etc\/docker\/daemon.json\n{\n  \"registry-mirrors\": [\n    \"https:\/\/docker.1ms.run\",\n    \"https:\/\/docker-0.unsee.tech\",\n    \"https:\/\/docker.m.daocloud.io\"\n  ],\n  \"live-restore\": true,\n  \"features\": { \"buildkit\": true }\n}\n<\/code><\/pre>\n<p>\u6216\u8005\u4f7f\u7528\u8fd9\u4e2a\u6765\u770b\uff1a<\/p>\n<pre><code class=\"language-bash line-numbers\"># \u67e5\u770b\u6240\u6709\u914d\u7f6e\ndocker info\n\n# \u67e5\u770b\u7279\u5b9a\u914d\u7f6e\ndocker info --format '{{json .RegistryConfig}}' | jq .\ndocker info --format '{{json .LoggingDriver}}'\n\n# \u67e5\u770b\u5b58\u50a8\u9a71\u52a8\ndocker info --format '{{.Driver}}'\n<\/code><\/pre>\n<p>\u7f51\u4e0a\u6709\u8bf4\uff0c\u53bb\u4f7f\u7528\u963f\u91cc\u4e91\u7684\u4e2a\u4eba\u955c\u50cf\u52a0\u901f\u5668\uff0c\u4eb2\u6d4b\u65e0\u6548\u3002\u4f46\u53ef\u4ee5\u53c2\u8003\u4fee\u6539\u7684\u6b65\u9aa4\uff1a<\/p>\n<pre><code class=\"language-bash line-numbers\">sudo mkdir -p \/etc\/docker\nsudo tee \/etc\/docker\/daemon.json &lt;&lt;-'EOF'\n{\n  \"registry-mirrors\": [\"https:\/\/xxxx.mirror.aliyuncs.com\"]\n}\nEOF\nsudo systemctl daemon-reload\nsudo systemctl restart docker\n\n#\u4f9d\u7136\u4f1a\u62a5\u9519\uff1a\n$ docker pull docker.mirrors.ustc.edu.cn\/library\/nginx:latest\nError response from daemon: Get \"https:\/\/docker.mirrors.ustc.edu.cn\/v2\/\": dial tcp: lookup docker.mirrors.ustc.edu.cn on 114.114.114.114:53: no such host\n<\/code><\/pre>\n<h2>\u56db\u3001\u6545\u969c\u6392\u67e5<\/h2>\n<h3>1. \u6743\u9650\u95ee\u9898<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u5982\u679c\u63d0\u793a \"Got permission denied while trying to connect to the Docker daemon socket\"\nsudo usermod -aG docker $USER\nnewgrp docker\n\n# \u6216\u8005\u76f4\u63a5\u4fee\u6539 socket \u6743\u9650\uff08\u4e0d\u63a8\u8350\uff09\nsudo chmod 666 \/var\/run\/docker.sock\n<\/code><\/pre>\n<h3>2. \u7f51\u7edc\u95ee\u9898<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u68c0\u67e5\u7f51\u7edc\u914d\u7f6e\nsudo systemctl status docker\njournalctl -u docker -n 50\n\n# \u68c0\u67e5 DNS \u914d\u7f6e\ncat \/etc\/resolv.conf\n\n# \u4e34\u65f6\u4f7f\u7528\u4ee3\u7406\uff08\u5982\u679c\u9700\u8981\uff09\nexport HTTP_PROXY=http:\/\/proxy.example.com:8080\nexport HTTPS_PROXY=http:\/\/proxy.example.com:8080\n<\/code><\/pre>\n<h3>3. \u5b58\u50a8\u95ee\u9898<\/h3>\n<pre><code class=\"language-bash line-numbers\"># \u67e5\u770b Docker \u5b58\u50a8\u4fe1\u606f\ndocker system df\n\n# \u6e05\u7406\u7a7a\u95f4\ndocker system prune\ndocker volume prune\n\n# \u4fee\u6539\u5b58\u50a8\u4f4d\u7f6e\uff08\u5982\u679c\u9700\u8981\uff09\n# 1. \u505c\u6b62 Docker\nsudo systemctl stop docker\n# 2. \u79fb\u52a8\u6570\u636e\nsudo mv \/var\/lib\/docker \/path\/to\/new\/location\n# 3. \u521b\u5efa\u8f6f\u94fe\u63a5\nsudo ln -s \/path\/to\/new\/location\/docker \/var\/lib\/docker\n# 4. \u91cd\u542f Docker\nsudo systemctl start docker\n<\/code><\/pre>\n<h2>\u4e94\u3001\u5378\u8f7d Docker<\/h2>\n<pre><code class=\"language-bash line-numbers\"># \u505c\u6b62\u6240\u6709\u5bb9\u5668\ndocker stop $(docker ps -aq)\n\n# \u5378\u8f7d Docker\nsudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y\n\n# \u5220\u9664\u6570\u636e\nsudo rm -rf \/var\/lib\/docker\nsudo rm -rf \/var\/lib\/containerd\n\n# \u5220\u9664\u914d\u7f6e\u6587\u4ef6\nsudo rm -rf \/etc\/docker\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u8bb0\u5f55\u4e00\u4e0b\u5728 Ubuntu 22.0.4\u4e0a\u5b89\u88c5docker\uff0c\u5e76\u8fdb\u884c\u4e00\u4e9b\u914d\u7f6e\u3002 \u4e00\u3001\u5b98\u65b9\u63a8\u8350\u5b89\u88c5\u6b65\u9aa4 1. \u5378&hellip;<\/p>\n <a href=\"https:\/\/www.db2go.net\/?p=795\" title=\"Ubuntu \u5b89\u88c5 Docker \u8be6\u7ec6\u6b65\u9aa4\" class=\"entry-more-link\"><span>Read More<\/span> <span class=\"screen-reader-text\">Ubuntu \u5b89\u88c5 Docker \u8be6\u7ec6\u6b65\u9aa4<\/span><\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"Layout":"2c-l","footnotes":""},"categories":[14],"tags":[],"class_list":["entry","author-suredandan","post-795","post","type-post","status-publish","format-standard","category-14"],"views":267,"_links":{"self":[{"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/posts\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.db2go.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=795"}],"version-history":[{"count":3,"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/posts\/795\/revisions"}],"predecessor-version":[{"id":798,"href":"https:\/\/www.db2go.net\/index.php?rest_route=\/wp\/v2\/posts\/795\/revisions\/798"}],"wp:attachment":[{"href":"https:\/\/www.db2go.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.db2go.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.db2go.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}