作者文章

fwq

FWQ
Docker教程
Docker中的组件介绍
从Docker 1.11开始,Docker容器运行已经不是简单的通过Docker daemon来启动,而是集成了containerd、runC等多个组件。Docker服务启动之后,我们也可以看见系统上启动了dockerd、docker-containerd等进程,本文主要介绍新版Docker(1.11以后)每个部分的功能和作用。包括 docker、docker-containerd、docker-containerd-ctr、docker-containerd-shim、dockerd、docker-init、docker-proxy、docker-runc ,这8个二进制文件。   一、dockerd 作为Docker容器管理的守护进程,Docker Daemon从最初集成在docker命令中(1.11版本前),到后来的独立成单独二进制程序(1.11版本开始),其功能正在逐渐拆分细化,被分配到各个单独的模块中去。从Docker服务的启动脚本,也能看见守护进程的逐渐剥离: 在Docker 1.8之前,Docker守护进程启动的命令为:docker -d , 这个阶段,守护进程看上去只是Docker client的一个选项。 Docker 1.8开始,启动命令变成了:docker daemon,这个阶段,守护进程看上去是docker命令的一个模块。 Docker 1.11开始,守护进程启动命令变成了:dockerd,此时已经和Docker client分离,独立成一个二进制程序了。 当然,守护进程模块不停的在重构,其基本功能和定位没有变化。和一般的CS架构系统一样,守护进程负责和Docker client交互,并管理Docker镜像、容器。 二、docker-runc runC是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。如果你了解过Docker引擎早期的历史,你应该知道当时启动和管理一个容器需要使用LXC工具集,然后在使用libcontainer。libcontainer就是使用类似cgroup和namespace一样的Linux内核设备接口编写的一小段代码,它是容器的基本构建模块。为了是过程更加简单,runC基本上是一个小命令行工具且它可以不用通过Docker引擎,直接就可以使用容器。这是一个独立的二进制文件,使用OCI容器就可以运行它。 三、docker-containerd containerd 是运用…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之概述
Docker官方为了让用户快速了解docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅。这里仅介绍Docker的管理命令(命令行),如果需要docker的启动命令,请参考:Docker的启动参数,Docker的命令,包括以下11部分的内容:   一、container Manage containers 参考:Docker的命令之容器管理 Container 二、image Manage images 参考:Docker的命令之镜像管理 Image 三、network Manage networks 参考:Docker的命令之网络管理 network 四、node Manage Swarm node 参考:Docker的命令之节点管理 Swarm nodes 五、plugin Manage plugins 参考:Docker的命令之插件管理…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之容器管理 Container
Docker的容器概念这里不再详细叙述,可自行百度,通俗可理解为虚拟机,但远优越于虚拟机,这里只介绍,使用命令对 container (容器)进行操作,使用 docker container –help ,可以查看所有container(容器)相关的命令。   Usage:    docker container COMMAND Manage containers Options:       --help   Print usage Commands:   attach      Attach local standard input, output, and…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之镜像管理 Image
一、Docker 容器概念 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:14.04 就包含了完整的一套 Ubuntu 14.04 最小系统的 root 文件系统。 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。   二、分层存储 因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 Union…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之网络管理 network
在介绍 docker network的命令之前,务必先知道 network 在docker体系中扮演的角色、特性、以及作用。参考一篇转载的文章:Docker network的网络特性,使用 docker network –help ,可以查看所有network(网络)相关的命令。   Usage:    docker network COMMAND Manage networks Options:       --help   Print usage Commands:   connect     Connect a container…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之集群节点管理 Swarm node
节点(Node)为swarm(docker 集群)中的一个Docker Engine实例。其中管理节点(Manager Node)负责swarm管理并向工作节点分配任务;工作节点(Work Node)接受并执行来自管理节点的Task。简单可理解为一个Node就是一台Docker宿主机。 关于Swarm的介绍,参考:Docker的命令之集群管理 swarm,docker node的指令管理docker集群中的节点,docker swarm 管理整个docker集群的指令,docker  node 管理docker集群中节点的指令,集群中的节点包括worker和manager两种类型的节点。   Usage:    docker node COMMAND Manage Swarm nodes Options:       --help   Print usage Commands:   demote     …
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之插件管理 Plugin
Docker的一个重要特性是开箱即用,“开箱即用”是指什么呢?简单来说,安装好Docker就可以马上使用。不需要任何额外的操作,诸如网络、进程、文件系统隔离等繁杂事情也不在你担心的范围内。 不过,经过一段时间的使用,你可能开始会考虑更多——诸如自定义网络,自定义保留IP地址,分布式文件系统等等。这些需求会在你将Docker应用到生产或者做进一步准备时候浮现而出。 幸运的是,Docker不仅仅是开箱即用,其中的功能点也是可以进行调整的。如何调整呢?通过Docker的插件! “即使@Docker开箱即用,最终你还是想要更多。”—— @fntln 一、什么是Docker插件? 官方文档的描述是: Docker插件是增强Docker引擎功能的进程外扩展。 这就表示,插件不会运行在Docker daemon中。你可以随时随地(如果需要可以在另一台主机上)启动你的插件。你只需要通过Plugin Discovery(我们后面会深入讨论)通知Docker daemon这儿有一个新的插件可用即可。 进程外体系的另一个优点就是你甚至可以不用重新建立一个Docker daemon来增加一个插件。 “你不需要重新编译@Docker的守护进程来增加一个插件。” ——fntlnz 你可以创建带有如下功能的各种插件,参考:使用插件扩展Docker案例 Usage: docker plugin COMMAND Manage plugins Options: --help Print usage Commands:…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之安全管理 Docker secret
集中式管理Docker 容器需要使用的敏感信息,包括密码,证书等,敏感信息不会保存在镜像中,compose模版也可以不需要显式填写密码等敏感信息,只需要引用密码对象的名称。实现的方式是通过把密码等敏感信息以文件的方式挂载到容器的/run/secrets/目录内,使用该特性的镜像需要支持通过文件读取的方式来使用敏感信息的能力。   Usage:    docker secret COMMAND Manage Docker secrets Options:       --help   Print usage Commands:   create      Create a secret from a file or STDIN as content…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之集群管理 swarm
Swarm 是提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。 作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API。各种基于标准 API 的工具比如 Compose、docker-py、各种管理软件,甚至 Docker 本身等都可以很容易的与 Swarm 进行集成。这大大方便了用户将原先基于单节点的系统移植到 Swarm 上。同时 Swarm 内置了对 Docker…
2024-11-18 阅读全文 →
FWQ
Docker教程
Docker的命令之系统管理 Docker system
Docker system是Docker 1.13引进了新的管理命令,它有4个子命令分别是 df, events, info 和 prune 。命令 docker system df 提供Docker整体磁盘使用率的概况,包括镜像、容器和(本地)volume。所以我们现在随时都可以查看Docker使用了多少资源。 如果之前的命令展示出 docker 已经占用了太多空间,我们会开始清理。有一个包办一切的命令: docker system prune 这个命令会删除当前没有被使用的一切项目,它按照一种正确的序列进行清理,所以会达到最大化的输出结果。首先删除没有被使用的容器,然后是volume和网络,最后是挂起的镜像。通过使用 y 回复来确认操作。如果想在脚本中使用这个命令,可以使用参数 –force 或者 -f 告诉Docker不要发来确认请求。   Usage:  …
2024-11-18 阅读全文 →