详解 Ubuntu 和 Arch Linux 双启动
Ubuntu 和 Arch Linux 双启动不像听起来那么容易,然而,我将使这个过程尽可能地简单明了。首先,我们需要安装 Ubuntu,然后安装 Arch Linux,因为配置 Ubuntu grub 更容易实现 Ubuntu 和 Arch Linux 双启动。Media
via https://linux.cn/article-9350-1.html
Ubuntu 和 Arch Linux 双启动不像听起来那么容易,然而,我将使这个过程尽可能地简单明了。首先,我们需要安装 Ubuntu,然后安装 Arch Linux,因为配置 Ubuntu grub 更容易实现 Ubuntu 和 Arch Linux 双启动。Media
via https://linux.cn/article-9350-1.html
在 Linux 上安装和使用 Docker
Docker 使得创建、部署,和管理容器变得特别简单。更好的是,安装和使用 Docker 在 Linux 平台上特别的方便。Media
via https://linux.cn/article-9352-1.html
Docker 使得创建、部署,和管理容器变得特别简单。更好的是,安装和使用 Docker 在 Linux 平台上特别的方便。Media
via https://linux.cn/article-9352-1.html
如何在 Linux/Unix 的 Bash 中打开或关闭 ls 命令颜色显示
大多数现代 Linux 发行版和 Unix 系统都有一个定义了文件名称颜色的别名。然后,ls 命令负责在屏幕上显示文件、目录和其他文件系统对象的颜色。Media
via https://linux.cn/article-9341-1.html
大多数现代 Linux 发行版和 Unix 系统都有一个定义了文件名称颜色的别名。然后,ls 命令负责在屏幕上显示文件、目录和其他文件系统对象的颜色。Media
via https://linux.cn/article-9341-1.html
为什么说 Python 和 Pygame 最适合编程初学者
我们有三个理由来说明 Pygame 对初学编程者是最好的选择。Media
via https://linux.cn/article-9345-1.html
我们有三个理由来说明 Pygame 对初学编程者是最好的选择。Media
via https://linux.cn/article-9345-1.html
我是被 “root@notty” 黑了吗?
当你在 ps aux 的输出中看到 sshd:root@notty 时会觉得很奇怪吧,notty 算是哪门子的主机,是不是黑客计算机的名字啊。Media
via https://linux.cn/article-9353-1.html
当你在 ps aux 的输出中看到 sshd:root@notty 时会觉得很奇怪吧,notty 算是哪门子的主机,是不是黑客计算机的名字啊。Media
via https://linux.cn/article-9353-1.html
我是被 “root@notty” 黑了吗?
Media当你在
via https://linux.cn/article-9353-1.html?utm_source=rss&utm_medium=rss
Media当你在
ps aux 的输出中看到 sshd:root@notty 时会觉得很奇怪吧,notty 算是哪门子的主机,是不是黑客计算机的名字啊。不过不用担心;notty 仅仅是表示 没有 tty 而已。当你在本地登录 Linux 机器时,登录终端会在进程列表中显示为 tty( 比如,tty7)。若你通过 ssh 登录一台远程服务器,则会看到类似 root@pts/0 这样的东西。而若某个连接是由 sftp 或者是由 scp 拷贝文件而创建的,则该连接会会显示成没有 tty (notty)。如果你仍然想知道服务器上发生了什么事情,可以检查 ps auxf 的输出来查看进程树,或者运行 netstat -vatn 来检查所有的 TCP 连接。via: http://www.sysadminworld.com/2011/ps-aux-shows-sshd-rootnotty/作者:sysadminworld 译者:lujun9972 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Mediavia https://linux.cn/article-9353-1.html?utm_source=rss&utm_medium=rss
如何在 Linux/Unix 之上绑定 ntpd 到特定的 IP 地址
NTP 是网络时间协议的首字母简写,这是一个用来同步两台电脑之间时间的协议。ntpd 是一个操作系统守护进程,可以设置并且保证系统的时间与互联网标准时间服务器同步。Media
via https://linux.cn/article-9354-1.html
NTP 是网络时间协议的首字母简写,这是一个用来同步两台电脑之间时间的协议。ntpd 是一个操作系统守护进程,可以设置并且保证系统的时间与互联网标准时间服务器同步。Media
via https://linux.cn/article-9354-1.html
如何使用特殊权限:setuid、setgid 和 sticky 位
在某些情况下,使用特殊权限会非常有用。但如果使用不当,可能会引入严重的漏洞,因此使用之前请三思。Media
via https://linux.cn/article-9355-1.html
在某些情况下,使用特殊权限会非常有用。但如果使用不当,可能会引入严重的漏洞,因此使用之前请三思。Media
via https://linux.cn/article-9355-1.html
在 Linux 上检查网络连接的更多方法
有几个命令可以帮助你在 Linux 系统上看到网络状况,这些包括 ip、ethtool、traceroute、tcptraceroute 和 tcpdump。Media
via https://linux.cn/article-9358-1.html
有几个命令可以帮助你在 Linux 系统上看到网络状况,这些包括 ip、ethtool、traceroute、tcptraceroute 和 tcpdump。Media
via https://linux.cn/article-9358-1.html
25 个学习 Linux 的免费资源(英文)
在这篇文章中,我将与你分享免费学习 Linux 的最佳资源。这个集合包括了网站、在线视频课程和免费电子书。Media
via https://linux.cn/article-9359-1.html
在这篇文章中,我将与你分享免费学习 Linux 的最佳资源。这个集合包括了网站、在线视频课程和免费电子书。Media
via https://linux.cn/article-9359-1.html
为初学者准备的 Linux rmdir 命令案例教程
在 Linux 命令行上删除文件和目录,我们已经讨论过 rm 命令 的使用。然而,这里有另一个相关的命令行工具,专门针对目录的删除。这是所指的工具就是 rmdir,本教程中,我们将根据一些简单的实例来讨论它。Media
via https://linux.cn/article-9357-1.html
在 Linux 命令行上删除文件和目录,我们已经讨论过 rm 命令 的使用。然而,这里有另一个相关的命令行工具,专门针对目录的删除。这是所指的工具就是 rmdir,本教程中,我们将根据一些简单的实例来讨论它。Media
via https://linux.cn/article-9357-1.html
2018 年度最佳 Linux 笔记本电脑:来自一位 RHCE 的选购指南
如果你不具备相关的知识和经验,挑选出最适合 Linux 的笔记本电脑,可能是件很困难的事。并且,看上去你买了一台配置、功能、性能都很棒的电脑,但是,却疲于处理各种 Linux 的问题,太难堪了!Media
via https://linux.cn/article-9360-1.html
如果你不具备相关的知识和经验,挑选出最适合 Linux 的笔记本电脑,可能是件很困难的事。并且,看上去你买了一台配置、功能、性能都很棒的电脑,但是,却疲于处理各种 Linux 的问题,太难堪了!Media
via https://linux.cn/article-9360-1.html
如何在 Ubuntu 16.04 LTS 上用 Tomb 加密文件
如今,大多数人都认为文件加密是必要的,甚至在 Linux 系统上也是如此。Media
via https://linux.cn/article-9361-1.html
如今,大多数人都认为文件加密是必要的,甚至在 Linux 系统上也是如此。Media
via https://linux.cn/article-9361-1.html
用一些超酷的功能使 Vim 变得更强大
我认为,Vim 应该从一开始就以我们想要的方式运作,而其它编辑器让我们按照已经设计好的方式工作,实际上不是我们想要的工作方式。Media
via https://linux.cn/article-9366-1.html
我认为,Vim 应该从一开始就以我们想要的方式运作,而其它编辑器让我们按照已经设计好的方式工作,实际上不是我们想要的工作方式。Media
via https://linux.cn/article-9366-1.html
如何 Docker 化编译的软件
我写了一个中等篇幅的评论解释了我如何用常规的方式为我想要的软件进行 Docker 化的。Media
via https://linux.cn/article-9368-1.html
我写了一个中等篇幅的评论解释了我如何用常规的方式为我想要的软件进行 Docker 化的。Media
via https://linux.cn/article-9368-1.html
如何 Docker 化编译的软件
Media我最近在 docker-library/php 仓库中关闭了大量问题,最老的(并且是最长的)讨论之一是关于安装编译扩展的依赖关系,我写了一个中等篇幅的评论解释了我如何用常规的方式为我想要的软件进行 Docker 化的。我要在这里复制大部分的评论内容,或许扩展一点点,以便有一个更好的/更干净的链接!我第一步是编写 Dockerfile 的原始版本:下载源码,运行 ./configure && make 等,清理。然后我尝试构建我的原始版本,并希望在这过程中看到错误消息。(对,真的!)错误信息通常以 error: could not find "xyz.h" 或 error: libxyz development headers not found 的形式出现。如果我在 Debian 中构建,我会输入 https://packages.debian.org/file:xyz.h(用错误信息中头文件的名称替换 “xyz.h”),或者在谷歌中搜索像 “xyz.h debian” 这样的东西,找出我需要的包的名称。如果我在 Alpine 中构建,我将使用 https://pkgs.alpinelinux.org/contents 进行类似的搜索。“libxyz development headers” 在某种程度上也是一样的,但是根据我的经验,对于这些用 Google 对开发者来说效果更好,因为不同的发行版和项目会以不同的名字来调用这些开发包,所以有时候更难确切的知道哪一个是“正确”的。当我得到包名后,我将这个包名称添加到我的 Dockerfile 中,清理之后,然后重复操作。最终通常会构建成功。偶尔我发现某些库不在 Debian 或 Alpine 中,或者是不够新的,由此我必须从源码构建它,但这些情况在我的经验中很少见 —— 因人而异。我还会经常查看 Debian(通过 https://sources.debian.org)或 Alpine(通过 https://git.alpinelinux.org/cgit/aports/tree)我要编译的软件包源码,特别关注 Build-Depends(如 php7.0=7.0.26-1 的 debian/control 文件)以及/或者 makedepends (如 php7 的 APKBUILD 文件)用于包名线索。就我个人而言,我觉得这种侦探工作很有趣,也很有收获,但我意识到我可能是一个独特的生物。我偶尔使用的另一个技术是看是否有人已经 Docker 化了我想要的东西,这样我可以直接从他们的 Dockerfile 中知道我需要安装的东西。对于特定的 PHP 扩展,几乎总是有人已经想出对于这个或那个模块需要的依赖,而我所要做的就是做一些轻量的工作找出它们。不管怎样,这就是我的方法!希望这个有帮助,玩得愉快!via: https://tianon.github.io/post/2017/12/26/dockerize-compiled-software.html作者:Tianon Gravi 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-9368-1.html?utm_source=rss&utm_medium=rss
Media我最近在 docker-library/php 仓库中关闭了大量问题,最老的(并且是最长的)讨论之一是关于安装编译扩展的依赖关系,我写了一个中等篇幅的评论解释了我如何用常规的方式为我想要的软件进行 Docker 化的。我要在这里复制大部分的评论内容,或许扩展一点点,以便有一个更好的/更干净的链接!我第一步是编写 Dockerfile 的原始版本:下载源码,运行 ./configure && make 等,清理。然后我尝试构建我的原始版本,并希望在这过程中看到错误消息。(对,真的!)错误信息通常以 error: could not find "xyz.h" 或 error: libxyz development headers not found 的形式出现。如果我在 Debian 中构建,我会输入 https://packages.debian.org/file:xyz.h(用错误信息中头文件的名称替换 “xyz.h”),或者在谷歌中搜索像 “xyz.h debian” 这样的东西,找出我需要的包的名称。如果我在 Alpine 中构建,我将使用 https://pkgs.alpinelinux.org/contents 进行类似的搜索。“libxyz development headers” 在某种程度上也是一样的,但是根据我的经验,对于这些用 Google 对开发者来说效果更好,因为不同的发行版和项目会以不同的名字来调用这些开发包,所以有时候更难确切的知道哪一个是“正确”的。当我得到包名后,我将这个包名称添加到我的 Dockerfile 中,清理之后,然后重复操作。最终通常会构建成功。偶尔我发现某些库不在 Debian 或 Alpine 中,或者是不够新的,由此我必须从源码构建它,但这些情况在我的经验中很少见 —— 因人而异。我还会经常查看 Debian(通过 https://sources.debian.org)或 Alpine(通过 https://git.alpinelinux.org/cgit/aports/tree)我要编译的软件包源码,特别关注 Build-Depends(如 php7.0=7.0.26-1 的 debian/control 文件)以及/或者 makedepends (如 php7 的 APKBUILD 文件)用于包名线索。就我个人而言,我觉得这种侦探工作很有趣,也很有收获,但我意识到我可能是一个独特的生物。我偶尔使用的另一个技术是看是否有人已经 Docker 化了我想要的东西,这样我可以直接从他们的 Dockerfile 中知道我需要安装的东西。对于特定的 PHP 扩展,几乎总是有人已经想出对于这个或那个模块需要的依赖,而我所要做的就是做一些轻量的工作找出它们。不管怎样,这就是我的方法!希望这个有帮助,玩得愉快!via: https://tianon.github.io/post/2017/12/26/dockerize-compiled-software.html作者:Tianon Gravi 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-9368-1.html?utm_source=rss&utm_medium=rss
Telnet,爱一直在
登录远程服务器,你可能不会也从未考虑过它。但这并不意味着 telnet 命令在调试远程连接问题时不是一个实用的工具。Media
via https://linux.cn/article-9369-1.html
登录远程服务器,你可能不会也从未考虑过它。但这并不意味着 telnet 命令在调试远程连接问题时不是一个实用的工具。Media
via https://linux.cn/article-9369-1.html
containerd 1.0 探索之旅
containerd 被用于 Docker、Kubernetes CRI、以及一些其它的项目,在这些平台中事实上都使用了 containerd,而许多人并不知道 containerd 存在于这些平台之中,这篇文章就是为这些人所写的。Media
via https://linux.cn/article-9370-1.html
containerd 被用于 Docker、Kubernetes CRI、以及一些其它的项目,在这些平台中事实上都使用了 containerd,而许多人并不知道 containerd 存在于这些平台之中,这篇文章就是为这些人所写的。Media
via https://linux.cn/article-9370-1.html
containerd 1.0 探索之旅
Media我们在过去的文章中讨论了一些 containerd 的不同特性,它是如何设计的,以及随着时间推移已经修复的一些问题。containerd 被用于 Docker、Kubernetes CRI、以及一些其它的项目,在这些平台中事实上都使用了 containerd,而许多人并不知道 containerd 存在于这些平台之中,这篇文章就是为这些人所写的。我将来会写更多的关于 containerd 的设计以及特性集方面的文章,但是现在,让我们从它的基础知识开始。Media我认为容器生态系统有时候可能很复杂。尤其是我们所使用的术语。它是什么?一个运行时,还是别的?一个运行时 … containerd(它的发音是 “container-dee”)正如它的名字,它是一个容器守护进程,而不是一些人忽悠我的“收集contain迷nerd”。它最初是作为 OCI 运行时(就像 runc 一样)的集成点而构建的,在过去的六个月中它增加了许多特性,使其达到了像 Docker 这样的现代容器平台以及像 Kubernetes 这样的编排平台的需求。那么,你使用 containerd 能去做些什么呢?你可以拥有推送或拉取功能以及镜像管理。可以拥有容器生命周期 API 去创建、运行、以及管理容器和它们的任务。一个完整的专门用于快照管理的 API,以及一个其所依赖的开放治理的项目。如果你需要去构建一个容器平台,基本上你不需要去处理任何底层操作系统细节方面的事情。我认为关于 containerd 中最重要的部分是,它有一个版本化的并且有 bug 修复和安全补丁的稳定 API。Media由于在内核中没有一个 Linux 容器这样的东西,因此容器是多种内核特性捆绑在一起而成的,当你构建一个大型平台或者分布式系统时,你需要在你的管理代码和系统调用之间构建一个抽象层,然后将这些特性捆绑粘接在一起去运行一个容器。而这个抽象层就是 containerd 的所在之处。它为稳定类型的平台层提供了一个客户端,这样平台可以构建在顶部而无需进入到内核级。因此,可以让使用容器、任务、和快照类型的工作相比通过管理调用去 clone() 或者 mount() 要友好的多。与灵活性相平衡,直接与运行时或者宿主机交互,这些对象避免了常规的高级抽象所带来的性能牺牲。结果是简单的任务很容易完成,而困难的任务也变得更有可能完成。containerdcontainerd 被设计用于 Docker 和 Kubernetes、以及想去抽象出系统调用或者在 Linux、Windows、Solaris 以及其它的操作系统上特定的功能去运行容器的其它容器系统。考虑到这些用户的想法,我们希望确保 containerd 只拥有它们所需要的东西,而没有它们不希望的东西。事实上这是不太可能的,但是至少我们想去尝试一下。虽然网络不在 containerd 的范围之内,它并不能做成让高级系统可以完全控制的东西。原因是,当你构建一个分布式系统时,网络是非常中心的地方。现在,对于 SDN 和服务发现,相比于在 Linux 上抽象出 netlink 调用,网络是更特殊的平台。大多数新的网络都是基于路由的,并且每次一个新的容器被创建或者删除时,都会请求更新路由表。服务发现、DNS 等等都需要及时被通知到这些改变。如果在 containerd 中添加对网络的管理,为了能够支持不同的网络接口、钩子、以及集成点,将会在 containerd 中增加很大的一块代码。而我们的选择是,在 containerd 中做一个健壮的事件系统,以便于多个消费者可以去订阅它们所关心的事件。我们也公开发布了一个 任务 API,它可以让用户去创建一个运行任务,也可以在一个容器的网络命名空间中添加一个接口,以及在一个容器的生命周期中的任何时候,无需复杂的钩子来启用容器的进程。在过去的几个月中另一个添加到 containerd 中的领域是完整的存储,以及支持 OCI 和 Docker 镜像格式的分布式系统。有了一个跨 containerd API 的完整的目录地址存储系统,它不仅适用于镜像,也适用于元数据、检查点、以及附加到容器的任何数据。我们也花时间去 重新考虑如何使用 “图驱动” 工作。这些是叠加的或者允许镜像分层的块级文件系统,可以使你执行的构建更加高效。当我们添加对 devicemapper 的支持时,图驱动graphdrivers最初是由 Solomon 和我写的。Docker 在那个时候仅支持 AUFS,因此我们在叠加文件系统之后,对图驱动进行了建模。但是,做一个像 devicemapper/lvm 这样的块级文件系统,就如同一个堆叠文件系统一样,从长远来看是非常困难的。这些接口必须基于时间的推移进行扩展,以支持我们最初认为并不需要的那些不同的特性。对于 containerd,我们使用了一个不同的方法,像快照一样做一个堆叠文件系统而不是相反。这样做起来更容易,因为堆叠文件系统比起像 BTRFS、ZFS 以及 devicemapper 这样的快照文件系统提供了更好的灵活性。因为这些文件系统没有严格的父/子关系。这有助于我们去构建出 快照的一个小型接口,同时还能满足 构建者 的要求,还能减少了需要的代码数量,从长远来看这样更易于维护。Media你可以在 Stephen Day 2017/12/7 在 KubeCon SIG Node 上的演讲找到更多关于 containerd 的架构方面的详细资料。除了在 1.0 代码库中的技术和设计上的更改之外,我们也将 containerd 管理模式从长期 BDFL 模式转换为技术委员会,为社区提供一个独立的可信任的第三方资源。via: https://blog.docker.com/2017/12/containerd-ga-features-2/作者:Michael Crosby 译者:qhwdw 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-9370-1.html?utm_source=rss&utm_medium=rss
Media我们在过去的文章中讨论了一些 containerd 的不同特性,它是如何设计的,以及随着时间推移已经修复的一些问题。containerd 被用于 Docker、Kubernetes CRI、以及一些其它的项目,在这些平台中事实上都使用了 containerd,而许多人并不知道 containerd 存在于这些平台之中,这篇文章就是为这些人所写的。我将来会写更多的关于 containerd 的设计以及特性集方面的文章,但是现在,让我们从它的基础知识开始。Media我认为容器生态系统有时候可能很复杂。尤其是我们所使用的术语。它是什么?一个运行时,还是别的?一个运行时 … containerd(它的发音是 “container-dee”)正如它的名字,它是一个容器守护进程,而不是一些人忽悠我的“收集contain迷nerd”。它最初是作为 OCI 运行时(就像 runc 一样)的集成点而构建的,在过去的六个月中它增加了许多特性,使其达到了像 Docker 这样的现代容器平台以及像 Kubernetes 这样的编排平台的需求。那么,你使用 containerd 能去做些什么呢?你可以拥有推送或拉取功能以及镜像管理。可以拥有容器生命周期 API 去创建、运行、以及管理容器和它们的任务。一个完整的专门用于快照管理的 API,以及一个其所依赖的开放治理的项目。如果你需要去构建一个容器平台,基本上你不需要去处理任何底层操作系统细节方面的事情。我认为关于 containerd 中最重要的部分是,它有一个版本化的并且有 bug 修复和安全补丁的稳定 API。Media由于在内核中没有一个 Linux 容器这样的东西,因此容器是多种内核特性捆绑在一起而成的,当你构建一个大型平台或者分布式系统时,你需要在你的管理代码和系统调用之间构建一个抽象层,然后将这些特性捆绑粘接在一起去运行一个容器。而这个抽象层就是 containerd 的所在之处。它为稳定类型的平台层提供了一个客户端,这样平台可以构建在顶部而无需进入到内核级。因此,可以让使用容器、任务、和快照类型的工作相比通过管理调用去 clone() 或者 mount() 要友好的多。与灵活性相平衡,直接与运行时或者宿主机交互,这些对象避免了常规的高级抽象所带来的性能牺牲。结果是简单的任务很容易完成,而困难的任务也变得更有可能完成。containerdcontainerd 被设计用于 Docker 和 Kubernetes、以及想去抽象出系统调用或者在 Linux、Windows、Solaris 以及其它的操作系统上特定的功能去运行容器的其它容器系统。考虑到这些用户的想法,我们希望确保 containerd 只拥有它们所需要的东西,而没有它们不希望的东西。事实上这是不太可能的,但是至少我们想去尝试一下。虽然网络不在 containerd 的范围之内,它并不能做成让高级系统可以完全控制的东西。原因是,当你构建一个分布式系统时,网络是非常中心的地方。现在,对于 SDN 和服务发现,相比于在 Linux 上抽象出 netlink 调用,网络是更特殊的平台。大多数新的网络都是基于路由的,并且每次一个新的容器被创建或者删除时,都会请求更新路由表。服务发现、DNS 等等都需要及时被通知到这些改变。如果在 containerd 中添加对网络的管理,为了能够支持不同的网络接口、钩子、以及集成点,将会在 containerd 中增加很大的一块代码。而我们的选择是,在 containerd 中做一个健壮的事件系统,以便于多个消费者可以去订阅它们所关心的事件。我们也公开发布了一个 任务 API,它可以让用户去创建一个运行任务,也可以在一个容器的网络命名空间中添加一个接口,以及在一个容器的生命周期中的任何时候,无需复杂的钩子来启用容器的进程。在过去的几个月中另一个添加到 containerd 中的领域是完整的存储,以及支持 OCI 和 Docker 镜像格式的分布式系统。有了一个跨 containerd API 的完整的目录地址存储系统,它不仅适用于镜像,也适用于元数据、检查点、以及附加到容器的任何数据。我们也花时间去 重新考虑如何使用 “图驱动” 工作。这些是叠加的或者允许镜像分层的块级文件系统,可以使你执行的构建更加高效。当我们添加对 devicemapper 的支持时,图驱动graphdrivers最初是由 Solomon 和我写的。Docker 在那个时候仅支持 AUFS,因此我们在叠加文件系统之后,对图驱动进行了建模。但是,做一个像 devicemapper/lvm 这样的块级文件系统,就如同一个堆叠文件系统一样,从长远来看是非常困难的。这些接口必须基于时间的推移进行扩展,以支持我们最初认为并不需要的那些不同的特性。对于 containerd,我们使用了一个不同的方法,像快照一样做一个堆叠文件系统而不是相反。这样做起来更容易,因为堆叠文件系统比起像 BTRFS、ZFS 以及 devicemapper 这样的快照文件系统提供了更好的灵活性。因为这些文件系统没有严格的父/子关系。这有助于我们去构建出 快照的一个小型接口,同时还能满足 构建者 的要求,还能减少了需要的代码数量,从长远来看这样更易于维护。Media你可以在 Stephen Day 2017/12/7 在 KubeCon SIG Node 上的演讲找到更多关于 containerd 的架构方面的详细资料。除了在 1.0 代码库中的技术和设计上的更改之外,我们也将 containerd 管理模式从长期 BDFL 模式转换为技术委员会,为社区提供一个独立的可信任的第三方资源。via: https://blog.docker.com/2017/12/containerd-ga-features-2/作者:Michael Crosby 译者:qhwdw 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-9370-1.html?utm_source=rss&utm_medium=rss