<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on 数字花园 | Mlosun.com</title><link>https://mlosun.com/tech/docker/</link><description>Recent content in Docker on 数字花园 | Mlosun.com</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>mlosun@qq.com (mlosun)</managingEditor><webMaster>mlosun@qq.com (mlosun)</webMaster><copyright>© 数字花园 | Mlosun.com</copyright><lastBuildDate>Sat, 05 Sep 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://mlosun.com/tech/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker 学习笔记</title><link>https://mlosun.com/tech/docker/docker-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0800</pubDate><author>mlosun@qq.com (mlosun)</author><guid>https://mlosun.com/tech/docker/docker-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;说明&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;本文是根据 &lt;a href="https://www.bilibili.com/video/BV1THKyzBER6/"&gt;40分钟的Docker实战攻略，一期视频精通Docker&lt;/a&gt; 视频学习记录的笔记。&#10;&lt;a href="https://www.bilibili.com/video/BV1THKyzBER6?comment_on=1&amp;amp;comment_root_id=270940020720&amp;amp;share_tag=s_i#reply270940020720"&gt;参考评论1&lt;/a&gt; &lt;a href="https://www.bilibili.com/video/BV1THKyzBER6?comment_on=1&amp;amp;comment_root_id=283732220368&amp;amp;comment_secondary_id=291493627440&amp;amp;share_tag=s_i#reply291493627440"&gt;参考评论2&lt;/a&gt;&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="docker-核心概念"&gt;Docker 核心概念&#10;&lt;/h2&gt;&#10;&lt;h3 id="容器化技术"&gt;容器化技术&#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Docker 是目前最成熟高效的软件部署技术&lt;/li&gt;&#10;&lt;li&gt;Docker 就是用容器化技术给应用程序封装独立的运行环境&lt;/li&gt;&#10;&lt;li&gt;每个运行环境就是一个==容器==&lt;/li&gt;&#10;&lt;li&gt;运行容器的计算机被称为==宿主机==&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="容器与虚拟机的需求"&gt;容器与虚拟机的需求&#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;容器：多个容器共用同一个系统内核&lt;/li&gt;&#10;&lt;li&gt;虚拟机：每个虚拟机都包含操作系统的完整内核&lt;/li&gt;&#10;&lt;li&gt;优势：Docker 容器比虚拟机更轻、更小，启动速度更快&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="镜像与容器的关系"&gt;镜像与容器的关系&#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;镜像：镜像是容器的模板，可类比为软件安装包&lt;/li&gt;&#10;&lt;li&gt;容器：由“软件安装包”安装出来的软件&lt;/li&gt;&#10;&lt;li&gt;类比：&#10;&lt;ul&gt;&#10;&lt;li&gt;类比于用模具做糕点，镜像是模具，容器是做出来的糕点&lt;/li&gt;&#10;&lt;li&gt;可以使用一个模具（镜像）做出很多个糕点（容器）&lt;/li&gt;&#10;&lt;li&gt;也可以将模具（镜像）分享给其他人使用&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="docker-仓库"&gt;Docker 仓库&#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Docker 仓库是用来存放和分享镜像的地方&lt;/li&gt;&#10;&lt;li&gt;用户可以将镜像上传到仓库后，供其他人下载&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://hub.docker.com"&gt;Docker Hub&lt;/a&gt; 是 Docker 的官方仓库，可以搜索大量镜像&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="docker-安装方式"&gt;Docker 安装方式&#10;&lt;/h2&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;暂略~&#10;我日常使用 ==1Panel==、==cnb.cool==、==群晖 Nas== 这些方式管理 Docker 容器&#10;他们都已经配置好了 Docker 环境&#10;暂时不需要去了解 Docker 的安装&lt;/p&gt;</description></item><item><title>Docker 常用命令速查</title><link>https://mlosun.com/tech/docker/docker-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0800</pubDate><author>mlosun@qq.com (mlosun)</author><guid>https://mlosun.com/tech/docker/docker-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E9%80%9F%E6%9F%A5/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;列出日常使用频率最高的命令。更多可参考 &lt;a href="https://www.runoob.com/docker/docker-command-manual.html"&gt;Docker 命令大全 | 菜鸟教程&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="容器管理"&gt;容器管理&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;命令&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker ps&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;列出运行中的容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker ps -a&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;列出所有容器（含已停止的）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker start &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;启动已停止的容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker stop &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;停止运行中的容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker restart &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;重启容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker rm &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;删除已停止的容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker rm -f &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;强制删除运行中的容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker rename &amp;lt;容器&amp;gt; &amp;lt;新名称&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;重命名容器&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="镜像管理"&gt;镜像管理&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;命令&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker images&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;列出本地镜像&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker pull &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;从仓库拉取镜像，如 &lt;code&gt;docker pull nginx&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker rmi &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;删除本地镜像&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker build -t &amp;lt;标签&amp;gt; .&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;构建镜像，&lt;code&gt;-t&lt;/code&gt; 指定名称和标签&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker tag &amp;lt;镜像&amp;gt; &amp;lt;新标签&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;给镜像打标签&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker push &amp;lt;镜像名&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;推送镜像到远程仓库&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="日志与调试"&gt;日志与调试&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;命令&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker logs &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查看容器日志&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker logs -f --tail 100 &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;实时查看最近 100 条日志&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker exec -it &amp;lt;容器&amp;gt; bash&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;进入容器内部（交互式 Shell）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker inspect &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查看容器的详细信息（JSON）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker stats&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;实时显示容器资源占用（CPU/内存）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker top &amp;lt;容器&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查看容器内运行的进程&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="docker-compose"&gt;Docker Compose&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;命令&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;后台启动所有服务&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose down&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;停止并移除所有容器和网络&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose ps&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;列出项目中的容器状态&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose logs -f&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;实时查看所有服务的日志&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose restart&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;重启所有服务&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker compose pull&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;拉取所有服务的最新镜像&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="系统维护"&gt;系统维护&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;命令&lt;/th&gt;&#10; &lt;th scope="col"&gt;说明&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker system df&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查看磁盘使用情况&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker system prune&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;清理未使用的容器、镜像、网络&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker system prune -a&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;清理所有未使用的资源（含未使用的镜像）&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;docker info&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;查看 Docker 系统信息&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;</description></item><item><title>Docker 重启策略详解</title><link>https://mlosun.com/tech/docker/docker-%E9%87%8D%E5%90%AF%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3/</link><pubDate>Fri, 29 Nov 2024 00:00:00 +0800</pubDate><author>mlosun@qq.com (mlosun)</author><guid>https://mlosun.com/tech/docker/docker-%E9%87%8D%E5%90%AF%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3/</guid><description>&lt;p&gt;Docker 容器的重启策略有四种：&lt;code&gt;no&lt;/code&gt;、&lt;code&gt;always&lt;/code&gt;、&lt;code&gt;on-failure&lt;/code&gt;、&lt;code&gt;unless-stopped&lt;/code&gt;。&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;情况&lt;/th&gt;&#10; &lt;th scope="col"&gt;no&lt;/th&gt;&#10; &lt;th scope="col"&gt;always&lt;/th&gt;&#10; &lt;th scope="col"&gt;on-failure&lt;/th&gt;&#10; &lt;th scope="col"&gt;unless-stopped&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;容器正常退出 (0 状态)&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;容器非正常退出 (非 0 状态)&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;手动停止 (&lt;code&gt;docker stop&lt;/code&gt;)&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;Docker 服务重启 (如系统重启)&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;td&gt;不重启&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;下面通过一个 demo 来演示它们的区别。&lt;/p&gt;</description></item><item><title>Docker 远程管理 Portainer</title><link>https://mlosun.com/tech/docker/docker-%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86-portainer/</link><pubDate>Mon, 07 Oct 2024 00:00:00 +0800</pubDate><author>mlosun@qq.com (mlosun)</author><guid>https://mlosun.com/tech/docker/docker-%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86-portainer/</guid><description>&lt;div class="td-callout td-callout--warning" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-triangle-exclamation" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;2024-10-08 update 安全提醒&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;直接暴露 Docker API 端口（2375）到公网没有任何加密和认证。配置完成后务必限制防火墙来源 IP，或配置 TLS 加密。否则可能被加密劫持蠕虫盯上。&lt;/p&gt;</description></item></channel></rss>