Docker 1.11.0 版本新增\删除\修复功能介绍

Docker 1.11.0 版本新增\删除\修复功能介绍

镜像构建模块 (Builder)

  • 修复了当处理 WORKDIR 命令时,Docker 不能使用 uid/gid 的 Bug
  • 修复了通过用户命名空间(userns)不能使用正确的 uid/gid 的 Bug

Docker 客户端(Client)

  • 安全参数的划分符,由之前的: 改为 =
  • 在pull、push、build、login 和  search 操作中,可以加入用户代理,以传输至 Docker Registry
  • 允许通过 API 分别设定容器的域名名称(DOMAIN_NAME)和主机名
  • 修复了docker stats –no-stream 命令输出有可能都是 0 的 Bug
  • 修复了有些新启动的容器不会出现在docker stats 命令中的 Bug
  • 在 Linux-cgo 终端中不再支持后处理(Post Processing)
  • 如果–hostname 参数不符合 RFC1123 的话,该参数会被拒绝传入
  • Docker 开始支持通过 SOCKS 代理来转发客户端请求
  • Docker 目前支持外部的认证存储
  • docker ps命令现在支持显示被挂载到容器内部的存储卷列表
  • docker info现在支持显示 Docker Daemon 的根目录地址
  • Docker 现在不允许用户登录时输入一个空的用户名,因为空格会被移除
  • Docker 的运行事件属性会通过 key 来排序
  • docker ps命令不再显示已经停止的容器的暴露端口
  • Docker 现在会自动还原现场,如果一个docker save 和 docker export 操作失败的话
  • docker load命令现在支持显示一个进度条

Distribution

  • 修复了当下载没有 layer 的镜像时发生的恐慌错误
  • 修复了使用一个错误配置的 token 服务来向 Docker Registry 推送镜像时的恐慌
  • 当进行一个受信的镜像推送时,目前需要完成一次全面的授权工作
  • Registry 的 OAuth 已经可以支持
  • 目前docker login 使用 docker/distribution 中的实现来处理 token 信息
  • docker login不再提示输入邮箱地址
  • Docker 如果没有 basic auth 的信息时,会自动转向 docker regsitry v1
  • 在网络错误或者超时的情况下,Docker 会重新恢复对一个镜像 layer 的下载
  • 修复了推送 cross-repository 时生成的 manifest 的媒介类型

日志模块(logging)

  • 修复了 jorunald 日志驱动的数据临界区冲突
  • 当发送日志时,Docker 的 syslog 驱动现在使用 RFC-5424 的格式
  • Docker 的 GELF 日志驱动现在允许通过gelf-compression-type 和 gelf-compression-level 参数来制定压缩算法以及压缩级别
  • Docker Daemon 开始使用–law-logs 参数来保证输入没有着色的日志
  • 在微软平台上的 Docker,目前包括了 ETW (Event Tracing in Windows)的日志驱动,命名为etwlogs
  • Journald 日志驱动开始有能力处理标签
  • Fluent 日志驱动开始支持以下参数:fluentd-address、fluentd-buffer-limit、fluentd-retry-wait、fluentd-max-retries和fluentd-async-connect

格式更新(Misc)

  • 当通过docker save 命令保存链接关系的镜像时,最终 docker load 命令会以父子的关系,重新保存这些镜像
  • Docker 命令的自动补全,已经在 PowerShell 中得到支持
  • 在 Docker 的世界中,不再存在 dockerinit
  • 支持在 arm64 的设备上构建 Docker
  • 在一个原生的 Windows 安装过程中,实现构建exe 的试验版支持
  • 目前 Docker Cli 的编译工作已经支持 OpenBSD
  • 标签目前已经可以被添加在网络、存储卷和镜像的创建过程中
  • dockremap目前会被作为默认用户创建
  • 修复一部分的响应请求内存泄漏
  • 当作为 systemd 的一项服务时,Docker 会管理它的进程 cgroup
  • docker info会汇报 cgroup 内核内存的大小,或者在不支持该参数时发送一个告警
  • docker info目前可以支持 cgroup 驱动的显示

安全

  • 拥有类型pcp_pmcd_t 的对象,目前已经授予了访问 /var/lib/docker 的管理权限
  • restart_syscall、copy_file_range和 mlock2 已经作为容器允许的系统调用,被加入至默认的 seccomp 文档中
  • send、recv和x32 已经加入至容器允许的系统调用,从而使得容器可以安装 32 位的软件包
  • Docker Content Trust 目前可以向服务端发送请求,以实现签名快照
  • 将对于 YubiKeys 的支持移出了试验部分(experimental)

网络

  • 修复了一个节点被从一个集群中强制删除时可能出现的恐慌错误
  • 修复了在 Swarm 集群中启动一个容器时,会报 “error creating vxlan interface” 的错误
  • 不管是否用拥有一个运行的容器,docker network inspect会显示所有的 endpoint
  • 对 MacVlan 和 IPVlan 的支持,已经被加入至 Docker 的试验版本
  • docker network ls的输出现在会以网络名进行排序
  • 修复了 Docker 会允许保留的 default 名来创建网络的 Bug
  • docker network inspect目前会显示一个网络是否是内部的
  • 当创建一个网络时,通过清晰的参数来实现控制 IPv6(docker network create –ipv6),这会在docker network inspect中以一个新的域 EnableIPv6 来实现
  • 在内嵌的 DNS 服务中支持 AAAA 记录,也就是 IPv6 的服务发现
  • 修复了在关闭过程中一个网络删除后,阻止 docker reload 操作的 Bug
  • 确保 iptables 链在 firewalld 重新加载过程中被重新创建
  • 从容器的网络命名空间中找到被转发的 DNS 查询
  • 在 docker daemon 重新加载配置时,为网桥网络获取网络的内部网络模式配置
  • 在 docker daemon 重新加载配置时,获取原先的 IPAM 网络地址管理驱动
  • 修复了 Bug,从而不向外部主机转发 docker 域内 IPv6 查询请求
  • 为轮询的 DNS 策略,从嵌入的 DNS 服务器中支持多种 A/AAAA 纪录
  • 在非正常的 docker 重启之后,修复了 endpoint 的数量不一致
  • 将暴露端口和端口映射关系的所属权,从 Endpoint 移至 Sandbox
  • 当主机的配置有disable=1 时,修复了不能 docker reload 的 Bug
  • 在 IPAM 网络地址管理驱动中添加了 nil 的内置实现
  • 修复了Exists() 逻辑中的 Bug
  • 修复使用 overlay 网络时,veth 网络接口的内存泄漏问题

插件

  • 修复了每次罗列插件时都会出现的文件描述符泄漏
  • 修复了面对大量数据时,authz 插件有可能会使 payload body 崩溃的 Bug

Docker Daemon 运行时

  • 修复了通过无效的参数启动一个容器之后还原现场可能存在的程序恐慌
  • 修复了事件计时器提前停止可能出现临界区冲突
  • 修复了 layer 存储中存在的数据临界区问题,该问题有可能导致 map 对象的失效以及 docker daemon 进程的崩溃
  • 在 mount 时,对于宿主机文件的自动创建功能由重新恢复,此前在 Docker 1.9 版本时,该功能已经被弃用
  • 当用户命名空间启动时,现在可以让容器间共享 NET 和 IPC 命名空间
  • docker inspect <image-id>命令目前已经可以支持显示 rootfs 的 layer
  • Windows 上的 Docker 现在已经支持了一个 top 命令的最简单实现
  • 当一个容器不能通过 Docker 的命令启动时,Docker 报告这个错误
  • 如果udev sync 不可用时,Docker 将拒绝运行 device mapper
  • 修复了出现夯机的现象,当初始启动失败后的 attach 操作
  • 修复了 Docker 配置文件中的 Registry 服务参数没有被正常考虑的问题
  • 修复了 exec 和 resize 操作有可能造成的临界区数据访问冲突问题
  • 修复了在 docker 事件中,没有正确考虑的纳秒计算问题
  • 修复了当传入一个 64 位 ID 时,Docker 命令的处理问题
  • 修复了杀死进程时该进程已经自己退出时,Docker Daemon 有可能无限期等待的 Bug
  • devicemapper 驱动开始支持参数min_free_space,如果映射的设备剩余空间到达了设定值,那么新设备的创建也会被禁止
  • Docker 现在支持通过参数–security-opt=no-new-privileges 禁止容器内的进程获取新的 privilege 的权限
  • 带有参数–device 启动一个容器时,现在将会重新解析符号链接
  • Docker 现在开始通过 containerd 和 runc 来创建新的容器
  • 修复了 Docker 配置重新加载只检索配置文件中选项的问题
  • docker update操作支持更新一个容器的重启策略
  • docker inspect现在返回一个新的 State 状态,包含了可读的容器状态
  • 修复了 IPv6 点对点通信时的邻点发现问题
  • 修复了如果容器通过无效参数启动时,清理过程中有可能出现的运行恐慌
  • 修复了当运行终端被关闭之后,容器不能被停止的 Bug
  • 当网络参数–net=host 时,Docker 现在允许为容器再设定一个 hostname
  • 当–privileged 和新的 –userns=host 参数被指定时,Docker 目前允许运行 privileged 容器时使用参数 –userns-remap
  • 当容器崩溃后重启时,修复了该情况下 Docker 不会清洗现场的 Bug
  • 当重新加载配置文件,读到一个没有定义的配置项时,Docker将会报告这个错误
  • 修复了 Docker Daemon 重启时,容器加载过程中依赖与插件的错误

存储卷

  • 命令docker volume ls 的输出目前已经按照存储卷的名称来排序
  • 本地的存储卷驱动(local driver)目前可以接受与 mount 命令类似的参数
  • 修复了一个 Bug,使得只有一个字母的文件夹可以被用来作为存储卷的源地址
  • 在docker run -v 命令中,新添加一个新的 flag,名为 nocopy。这个标识符告知 Docker Daemon 不要拷贝容器中的内容到存储卷之中(原先这是一个默认的行为)
K8S中文社区微信公众号
分享到:更多 ()

评论 抢沙发

评论前必须登录!