<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DockerTutorial - 标签 | 飞污熊小站</title><link>https://xiongneng.me/tags/dockertutorial/</link><description>飞污熊小站</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.6-20260512073637-464c4659</generator><language>zh-CN</language><managingEditor>yidao620@163.com (XiongNeng)</managingEditor><webMaster>yidao620@163.com (XiongNeng)</webMaster><copyright>XiongNeng</copyright><lastBuildDate>Sun, 17 May 2026 13:14:48 +0000</lastBuildDate><atom:link href="https://xiongneng.me/tags/dockertutorial/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker每天学一点11 - 容器网络macvlan</title><link>https://xiongneng.me/posts/k8s/docker/docker11/</link><pubDate>Sat, 16 Mar 2019 15:22:38 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker11/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;除了 overlay，docker 还开发了另一个支持跨主机容器网络的 driver：macvlan。&lt;/p&gt;
&lt;p&gt;macvlan 本身是 linxu kernel 模块，其功能是允许在同一个物理网卡上配置多个 MAC 地址，
即多个 interface，每个 interface 可以配置自己的 IP。macvlan 本质上是一种网卡虚拟化技术，Docker 用 macvlan 实现容器网络就不奇怪了。&lt;/p&gt;</description></item><item><title>Docker每天学一点10 - 容器网络overlay</title><link>https://xiongneng.me/posts/k8s/docker/docker10/</link><pubDate>Fri, 15 Mar 2019 09:56:12 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker10/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;前面已经学习了 Docker 的几种网络方案：none、host、bridge 和 joined 容器，
它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案。&lt;/p&gt;
&lt;p&gt;跨主机网络方案包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;docker 原生的 overlay 和 macvlan。&lt;/li&gt;
&lt;li&gt;第三方方案：常用的包括 flannel、weave 和 calico。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;docker 网络是一个非常活跃的技术领域，不断有新的方案开发出来，那么要问个非常重要的问题了：
如此众多的方案是如何与 docker 集成在一起的？&lt;/p&gt;</description></item><item><title>Docker每天学一点09 - 多主机管理</title><link>https://xiongneng.me/posts/k8s/docker/docker09/</link><pubDate>Tue, 12 Mar 2019 19:15:36 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker09/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;前面的实验都是在一个host中，而真实环境中肯定会有多个主机。
容器在这些 host 中启动、运行、停止和销毁，相关容器会通过网络相互通信，无论它们是否位于相同的 host。&lt;/p&gt;
&lt;p&gt;对于这样一个 multi-host 环境，我们将如何高效地进行管理呢？我们面临的第一个问题是：为所有的 host 安装和配置 docker。
如果一个个去安装肯定很麻烦又容易出错，手工方式效率低且不容易保证一致性，针对这个问题，docker 给出的解决方案是 Docker
Machine。&lt;/p&gt;</description></item><item><title>Docker每天学一点08 - 存储卷</title><link>https://xiongneng.me/posts/k8s/docker/docker08/</link><pubDate>Mon, 11 Mar 2019 10:37:55 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker08/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;Docker 为容器提供了两种存放数据的资源：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;由 storage driver 管理的镜像层和容器层。&lt;/li&gt;
&lt;li&gt;Data Volume&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接下来分别介绍下这两种存储方式。&lt;/p&gt;
&lt;h2 class="heading-element" id="storage-driver"&gt;&lt;span&gt;storage driver&lt;/span&gt;
 &lt;a href="#storage-driver" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;在镜像章节我们学习到 Docker 镜像的分层结构：&lt;/p&gt;</description></item><item><title>Docker每天学一点07 - 单主机网络</title><link>https://xiongneng.me/posts/k8s/docker/docker07/</link><pubDate>Sun, 10 Mar 2019 12:17:22 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker07/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;这一篇学习容器之间、容器和外界之间怎样相互通信。Docker 网络从覆盖范围可分为单主机的容器网络和跨主机的容器网络，
本章重点讨论前一种。对于更为复杂的多主机容器网络，后面的文章会专门讲。&lt;/p&gt;
&lt;h2 class="heading-element" id="三个网络"&gt;&lt;span&gt;三个网络&lt;/span&gt;
 &lt;a href="#%e4%b8%89%e4%b8%aa%e7%bd%91%e7%bb%9c" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Docker 安装时会自动在 host 上创建三个网络，我们可用&lt;code&gt; docker network ls&lt;/code&gt; 命令查看：&lt;/p&gt;</description></item><item><title>Docker每天学一点06 - 运行容器</title><link>https://xiongneng.me/posts/k8s/docker/docker06/</link><pubDate>Sat, 09 Mar 2019 09:16:33 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker06/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;这一篇学习容器的各种操作，容器的状态之间如何转换，以及实现容器的底层技术。&lt;/p&gt;
&lt;p&gt;运行容器&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d --name &amp;#34;node001&amp;#34; httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;查看当前正在运行的容器&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker ps
docker container ls&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;返回结果：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[root@VM_22_2_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d33b4ef85c4 registry:2 &amp;#34;/entrypoint.sh /e...&amp;#34; 7 hours ago Up 7 hours 0.0.0.0:5000-&amp;gt;5000/tcp vibrant_mestorf
ef4e11f77711 my-image &amp;#34;/bin/bash&amp;#34; 2 days ago Up 2 days cranky_yalow
3d5ea3e73344 httpd &amp;#34;httpd-foreground&amp;#34; 4 days ago Up 4 days 0.0.0.0:8020-&amp;gt;80/tcp boring_bardeen&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;加一个&lt;code&gt;-a&lt;/code&gt;选项可把所有容器都列出来：&lt;/p&gt;</description></item><item><title>Docker每天学一点05 - Registry</title><link>https://xiongneng.me/posts/k8s/docker/docker05/</link><pubDate>Thu, 07 Mar 2019 12:07:09 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker05/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;前面已经学会怎样构建镜像了，这一章介绍怎样分发镜像给多个Docker Host使用，
可以通过复制Dockerfile、将镜像上传至公共Registry、搭建私有Registry三种方式。&lt;/p&gt;
&lt;p&gt;这里将后面两种方式，怎样使用公共Registry和搭建私有Registry。&lt;/p&gt;</description></item><item><title>Docker每天学一点04 - Dockerfile</title><link>https://xiongneng.me/posts/k8s/docker/docker04/</link><pubDate>Tue, 05 Mar 2019 15:17:09 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker04/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;是时候系统学习 Dockerfile 了，下面介绍 Dockerfile 中最常用的指令，完整列表和说明可参看官方文档。&lt;/p&gt;
&lt;h2 class="heading-element" id="from"&gt;&lt;span&gt;FROM&lt;/span&gt;
 &lt;a href="#from" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;指定 base 镜像。&lt;/p&gt;</description></item><item><title>Docker每天学一点03 - 镜像</title><link>https://xiongneng.me/posts/k8s/docker/docker03/</link><pubDate>Sun, 03 Mar 2019 08:26:12 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker03/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;镜像是 Docker 容器的基石，容器是镜像的运行实例，有了镜像才能启动容器。&lt;/p&gt;
&lt;p&gt;如果我们想要创建自己的镜像，肯定要先了解镜像的内部结构。&lt;/p&gt;
&lt;p&gt;hello-world 是 Docker 官方提供的一个镜像，通常用来验证 Docker 是否安装成功。
我先从这个最小镜像开始说下，之前已经把它下载下来了。&lt;/p&gt;</description></item><item><title>Docker每天学一点02 - 架构详解</title><link>https://xiongneng.me/posts/k8s/docker/docker02/</link><pubDate>Sat, 02 Mar 2019 09:21:56 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker02/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;Docker 的核心组件包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Docker 客户端 - Client&lt;/li&gt;
&lt;li&gt;Docker 服务器 - Docker daemon&lt;/li&gt;
&lt;li&gt;Docker 镜像 - Image&lt;/li&gt;
&lt;li&gt;Docker 注册中心 - Registry&lt;/li&gt;
&lt;li&gt;Docker 容器 - Container（镜像的运行实例）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Docker 架构图如下：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src='https://xnstatic-1253397658.file.myqcloud.com/docker04.png' alt="https://xnstatic-1253397658.file.myqcloud.com/docker04.png"&gt;&lt;/p&gt;
&lt;p&gt;Docker 采用的是 Client/Server 架构。客户端向服务器发送请求，服务器负责构建、运行和分发容器。
客户端和服务器可以运行在同一个 Host 上，客户端也可以通过 socket 或 REST API 与远程的服务器通信。&lt;/p&gt;</description></item><item><title>Docker每天学一点01 - 入门</title><link>https://xiongneng.me/posts/k8s/docker/docker01/</link><pubDate>Fri, 01 Mar 2019 16:11:23 +0000</pubDate><author>yidao620@163.com (XiongNeng)</author><guid>https://xiongneng.me/posts/k8s/docker/docker01/</guid><category domain="https://xiongneng.me/categories/k8s/">K8s</category><description>&lt;p&gt;容器是一种轻量级、可移植、自包含的软件打包技术，使应用程序可以在几乎任何地方以相同的方式运行。
开发人员在自己笔记本上创建并测试好的容器，无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。&lt;/p&gt;</description></item></channel></rss>