Docker Engine 19.03 发行说明
19.03.15
2021-02-01
安全
- CVE-2021-21285漏洞防止无效镜像使 docker 守护进程崩溃
- CVE-2021-21284漏洞锁定文件权限以防止重新映射的 root 访问 docker 状态
- 确保在使用 BuildKit 构建时应用 AppArmor 和 SELinux 配置文件
客户
- 在导入上下文之前检查上下文,以降低提取的文件转义上下文存储的风险
19.03.14
2020-12-01
安全
- CVE-2020-15257: 漏洞 将 containerd 的捆绑静态二进制文件更新到 v1.3.9 moby/moby#41731。 Package Manager 应更新 containerd.io Package。
建筑工人
- 现在可以正确解析 apparmor 的 Beta 版本,防止构建失败 moby/moby#41542
联网
- 修复 swarmkit 服务一直无法启动 moby/moby 时 panic 的问题#41635
运行
- 返回正确的错误而不是虚假的错误 -EINVAL moby/moby#41293
无根
- 锁定状态目录以防止 systemd-tmpfiles moby/moby 自动清理 #41635
- dockerd-rootless.sh:支持新的 containerd shim 套接字路径约定 moby/moby#41557
伐木
- gcplogs: 修复内存/连接泄漏 moby/moby#41522
- awslogs:支持 AWS imdsv2 moby/moby#41494
19.03.13
2020-09-16
建筑工人
- buildkit:修复缓存逻辑 moby/moby 中的 nil 取消引用问题#41279
- buildkit:在 COPY/ADD moby/moby 期间将 Unix 套接字视为常规文件#41269
- buildkit:在计算中忽略系统和安全 xattrs,以确保无论 SELinux 环境如何 moby/moby 都保持一致的 COPY 缓存#41222
- buildkit:使行为更可靠 moby/moby#41222
--cache-from
- buildkit:修复导出缓存 moby/moby 时无限循环烧录 CPU 的问题#41185
客户
- 提升 Golang 1.13.15 docker/cli #2674
- 修复配置文件权限问题 (~/.docker/config.json) docker/cli#2631
- build: 修复高度为零的终端上的 panic docker/cli#2719
- windows: 修复控制台 docker/cli 中换行符的潜在问题 #2623
联网
- 清理失败的网络沙箱 moby/moby#41081
- 通过将 deadline 相关的错误转发给用户 moby/moby 来修复浅层错误消息#41312
- 修复 netns 文件描述符 moby/moby 泄露的问题#41287
无根
- 修复 port forwarder 资源泄漏 moby/moby#41277
运行
- 凹凸 Golang 1.13.15 moby/moby#41334
- 更新到 containerd 1.3.7 moby/moby#40408
窗户
- 修复使用 servercore 镜像 moby/moby 时 Windows 容器启动时间慢的问题#41192
19.03.12
2020-06-18
客户
- 修复使用多个配置文件时无法从注册表注销的问题(例如,使用 Docker Desktop 时 Windows 与 WSL2)docker/cli#2592
- 修复阻止读取上下文元数据的回归问题 docker/cli#2586
- 提升 Golang 1.13.12 docker/cli #2575
联网
- 修复阻止守护进程在 systemd-nspawn 环境中启动的回归问题 moby/moby#41124 moby/libnetwork#2567
- 修复在 swarm moby/moby 中创建 overlay 网络的重试逻辑#41124 moby/libnetwork#2565
运行
- 凹凸 Golang 1.13.12 moby/moby#41082
19.03.11
2020-06-01
网络
禁用 IPv6 路由器通告以防止地址欺骗。CVE-2020-13401漏洞
描述
在 Docker 默认配置中,容器网络接口是通往主机的虚拟以太网链路(veth 接口)。
在此配置中,能够在容器中以 root 身份运行进程的攻击者可以使用该功能(存在于默认配置中)向主机发送和接收任意数据包。CAP_NET_RAW
如果 IPv6 在主机上没有完全禁用(通过内核 cmdline),它将被取消配置或在某些接口上配置,但很可能禁用了 IPv6 转发,即 .此外,默认情况下, .这两个 sysctl 的组合意味着主机接受路由器通告并使用它们配置 IPv6 堆栈。ipv6.disable=1
/proc/sys/net/ipv6/conf//forwarding == 0
/proc/sys/net/ipv6/conf//accept_ra == 1
通过从容器发送“恶意”路由器通告,攻击者可以重新配置主机,以将主机的部分或全部 IPv6 流量重定向到攻击者控制的容器。
即使之前没有 IPv6 流量,如果 DNS 返回 A (IPv4) 和 AAAA (IPv6) 记录,许多 HTTP 库也会先尝试通过 IPv6 连接,然后回退到 IPv4,从而给攻击者提供响应的机会。 如果主机偶然出现类似去年 apt 中的 RCE (CVE-2019-3462) 的漏洞,攻击者现在可以升级到主机。
由于 Docker 容器默认不存在,因此攻击者无法配置他们想要的 IP 以进行 MitM,他们无法使用 iptables 进行 NAT 或重定向流量,并且他们不能使用 .
但是,攻击者仍然可以在用户空间中使用和实现 tcp/ip 堆栈。CAP_NET_ADMIN
IP_TRANSPARENT
CAP_NET_RAW
有关相关问题,请参阅 kubernetes/kubernetes#91507。
19.03.10
2020-05-29
客户
- 修复与旧引擎的版本协商。docker/cli 的 #2538
- 避免通过主机名设置 SSH 标志。docker/cli 命令 #2560
- 修复 DOCKER_CLI_EXPERIMENTAL 无效时的 panic。docker/cli 的 #2558
- 通过将 Go 升级到 1.13.11 来避免 s390x 上的潜在崩溃。docker/cli #2532 命令
联网
- 修复 DNS 回退回归。白鲸/白鲸#41009
运行
- 通过将 Go 升级到 1.13.11 来避免 s390x 上的潜在崩溃。白鲸/白鲸#40978
包装
- 修复 ARM64 上的 ARM 版本。白鲸/白鲸#41027
19.03.9
2020-05-14
建筑工人
- buildkit:修复并行构建多个镜像时并发 map 写入 panic。白鲸/白鲸 #40780
- buildkit:修复了在具有 usern 的阶段之间阻止 chowned 非 root 拥有的文件的问题。白鲸/白鲸#40955
- 避免在 Windows 上创建不相关的临时文件。白鲸/白鲸 #40877
客户
- 修复单字符卷上的 panic。docker/cli #2471
- 惰性守护进程功能检测可避免简单命令长时间超时。docker/cli 的 #2442
- Windows 上的 docker context inspect 现在更快。docker/cli #2516
- 提升 Golang 1.13.10。docker/cli 命令 #2431
- 将 gopkg.in/yaml.v2 升级到 v2.2.8。docker/cli 命令 #2470
伐木
- 避免因关闭已关闭的日志文件而阻止容器日志轮换的情况。白鲸/白鲸#40921
联网
- 修复重启时可能出现的 panic。白鲸/白鲸#40809
- 将正确的网络值分配给默认网桥 Subnet 字段。白鲸/白鲸#40565
运行
- 修复了在 /etc/subuid 和 /etc/subgid 中使用 UID 创建命名空间时 docker 崩溃的问题。白鲸/白鲸#40562
- 改进 ARM 平台匹配。白鲸/白鲸#40758
- overlay2:显示后备文件系统。白鲸/白鲸#40652
- 将 CRIU 更新到 v3.13 “Silicon Willet”。白鲸/白鲸#40850
- 仅在成功回退时显示注册表 v2 schema1 弃用警告,而不是任何注册表错误。白鲸/白鲸 #40681
- 对 Windows 上的日志文件使用 FILE_SHARE_DELETE。白鲸/白鲸#40563
- 提升 Golang 1.13.10。白鲸/白鲸#40803
无根
- 现在,rootlesskit-docker-proxy 返回有关公开特权端口的详细错误消息。白鲸/白鲸#40863
- 支持 /etc/subuid 和 /etc/subgid 中的数字 ID。白鲸/白鲸#40951
安全
- AppArmor:为用户添加缺少的规则。白鲸/白鲸#40564
- SElinux:修复了重新标记时未检测到 ENOTSUP 错误的问题。白鲸/白鲸#40946
群
- 提高 Logger 的重新填充率,以避免在服务日志上挂起。白鲸/白鲸#40628
- 修复了重启后单个 swarm manager 卡在 Down 状态的问题。白鲸/白鲸#40831
- tasks.db不再无限增长。白鲸/白鲸#40831
19.03.8
2020-03-10
运行
- 改进某些 nscd 配置的 CVE-2019-14271 缓解措施。
19.03.7
2020-03-03
建筑工人
- builder-next:修复极端情况下的死锁问题。白鲸/白鲸#40557
运行
- overlay:删除 Modprobe execs。白鲸/白鲸#40462
- SELinux:设置文件标签时显示更好的错误消息。白鲸/白鲸#40547
- 加快初始统计信息收集速度。白鲸/白鲸#40549
- 无根:使用 XDG_CONFIG_HOME 中的 certs.d。白鲸/白鲸#40461
- Bump Golang 1.12.17.白鲸/白鲸#40533
- 将 google.golang.org/grpc 升级到 v1.23.1。白鲸/白鲸#40566
- 将 containerd 二进制文件更新到 v1.2.13。白鲸/白鲸#40540
- 防止将已停止的容器显示为在边缘情况下正在运行。白鲸/白鲸#40555
- 防止潜在的锁定。白鲸/白鲸 #40604
客户
- Bump Golang 1.12.17.docker/cli #2342
- 将 google.golang.org/grpc 升级到 v1.23.1。docker/cli #1884 docker/cli #2373
19.03.6
2020-02-12
建筑工人
- builder-next:允许使用 modern sign hash 进行 ssh 转发。docker/engine#453 的
- builder-next:触发后清除 onbuild 规则。docker/engine#453 的
- builder-next:修复启用 usernamespaces 时的目录权限问题。白鲸/白鲸#40440
- 碰撞 hcsshim 以修复 Windows 1903 上的 docker build 失败。docker/engine 的 #429
联网
- 缩短 exec-root 中的控制器 ID 不命中 docker/engine UNIX_PATH_MAX#424
- 修复 drivers/overlay/encryption.go 中的 panic。docker/engine 的 #424
- 修复 hwaddr set 我们和 udev 之间的竞争。docker/engine 的 #439
运行
- Bump Golang 1.12.16.白鲸/白鲸#40433
- 将 containerd 二进制文件更新到 v1.2.12。白鲸/白鲸#40433
- 更新到 runc v1.0.0-rc10。白鲸/白鲸#40433
- 修复 Lgetxattr 中可能出现的运行时 panic。docker/engine的 #454
- rootless:修复代理 UDP 数据包的问题。docker/engine 的 #434
19.03.5
2019-11-14
建筑工人
- builder-next:在 builder 配置中添加。docker/engine 的 #412
entitlements
- 修复 builder-next: 使用 buildsecret 或 ssh forwarding with userns-remap 的权限错误。docker/engine的 #420
- 修复 builder-next:在已复制的目录内复制符号链接。docker/engine的 #420
包装
- 支持 RHEL 8 软件包
运行
- 将 Golang 升级到 1.12.12。docker/engine的 #418
- 将 RootlessKit 更新到 v0.7.0,以使用 mount 命名空间和 seccomp 强化 slirp4netns。docker/engine 插件 #397
- 修复了从事件处理器传播 GetContainer 错误的问题。docker/engine 插件 #407
- 修复 OCI 镜像推送问题。docker/engine#405
19.03.4
2019-10-17
联网
- 回滚 libnetwork 更改以修复 iptables 链问题。docker/engine 的 #404
DOCKER-USER
已知问题
现存
- 在大型集群的某些情况下,Docker 信息可能作为 Swarm 部分的一部分,
包括错误 。这并不表示用户有任何失败或配置错误,
并且不需要回应。
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
- 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 Swarm 管理器
请求,某些服务无法接收流量,并在部署后导致错误。
404
- 解决方法:通过 重新启动所有任务。
docker service update --force
- 解决方法:通过 重新启动所有任务。
- CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252
docker pause
docker cp
由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp
/
19.03.3
2019-10-08
安全
- 在 containerd 中修补。CVE-2017-18367漏洞
runc
建筑工人
修复 builder-next:解析第三方注册表的摘要。docker/engine 插件 #339
修复 builder-next:当守护进程通过套接字激活启动时,用户命名空间会构建。docker/engine 的 #373
修复 builder-next;session:释放每个连接的转发 SSH 套接字连接。docker/engine 的 #373
修复 build-next: llbsolver: 多个缓存导入器上的错误。docker/engine 的 #373
客户
新增对 Docker Template 0.1.6 的支持。
缓解具有过多别名的 YAML 文件。docker/cli #2119
运行
将 Golang 升级到 1.12.10。docker/engine的 #387
将 containerd 升级到 1.2.10。docker/engine的 #385
分发:修改拉取 v2 schema1 清单时的警告逻辑。docker/engine的 #368
修复了在提供不正确的平台选项时返回 500 状态代码的问题。docker/engine 插件#365
POST /images/create
修复了在提供不正确的平台选项时返回 500 状态代码的问题。docker/engine 插件#365
POST /build
修复了 32 位 ARMv7 上因 struct member 未对齐而导致的 panic。docker/engine 插件#363
修复了在链接到不存在的容器时返回“无效参数”的问题。docker/engine的 #352
修复 overlay2:使用内核 >= 5.2 时挂载时出现 busy 错误。docker/engine 的 #332
修复卡在某些配置错误的系统中,例如 NFS 共享失效。docker/engine 的 #335
docker rmi
修复对 exec 进程的阻塞 I/O 的处理。docker/engine的 #296
修复 jsonfile logger:跟踪日志在设置时卡住,并且 .docker/engine 的 #378
max-size
max-file=1
已知问题
新增功能
DOCKER-USER
缺少 iptables 链:docker/for-linux#810。 用户无法在 this iptables 链。如果您不是,则不会受到此问题的影响 在 .DOCKER-USER
- 解决方法:在 docker 守护进程启动后插入 iptables 链。
例如:
iptables -N DOCKER-USER iptables -I FORWARD -j DOCKER-USER iptables -A DOCKER-USER -j RETURN
- 解决方法:在 docker 守护进程启动后插入 iptables 链。
例如:
现存
- 在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分,
包括错误 。这并不表示用户有任何失败或配置错误,
并且不需要回应。
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
- 将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager
请求,某些服务无法接收流量,并在部署后导致错误。
404
- 解决方法:通过 重新启动所有任务。
docker service update --force
- 解决方法:通过 重新启动所有任务。
- CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252
docker pause
docker cp
由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp
/
19.03.2
2019-09-03
建筑工人
修复了 Windows 上不存在的目录。白鲸/白鲸 #39695
COPY --from
修复 builder-next: 元数据命令在历史记录中没有创建时间。白鲸/白鲸 #39456
修复 builder-next: close progress on layer export 错误。白鲸/白鲸#39782
将 buildkit 更新到 588c73e1e4。白鲸/白鲸 #39781
客户
修复非 Windows docker/cli 上的 Windows 绝对路径检测问题 #1990
修复了 的 zsh 完成脚本。
docker login --username
修复上下文:在 上产生一致的输出。docker/cli #1985
context create
修复对 HTTP 代理 env 变量的支持。docker/cli #2059
伐木
- 修复了读取 journald 日志的问题。白鲸/白鲸#37819 白鲸/白鲸#38859
联网
- 防止在连接到已禁用联网的容器的网络上出现紧急情况。白鲸/白鲸 #39589
运行
将 Golang 升级到 1.12.8。
修复了在为容器使用 XFS 磁盘配额时可能出现的引擎崩溃问题。白鲸/白鲸#39644
群
- 修复了无法删除具有多个任务的节点的问题。docker/swarmkit #2867
已知问题
在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。
404
- 解决方法:通过 重新启动所有任务。
docker service update --force
- 解决方法:通过 重新启动所有任务。
由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:
/sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
运行一次。 - 受影响的版本:18.09.1、19.03.0
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252
docker pause
docker cp
由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp
/
19.03.1
2019-07-25
安全
- 修复了在 Glibc 下的 chroot 中加载基于 nsswitch 的配置。CVE-2019-14271漏洞
已知问题
在某些情况下,在大型集群中,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。
404
- 解决方法:通过 重新启动所有任务。
docker service update --force
- 解决方法:通过 重新启动所有任务。
由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:
/sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
运行一次。 - 受影响的版本:18.09.1、19.03.0
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252
docker pause
docker cp
由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp
/
19.03.0
2019-07-22
建筑工人
Fixed 以保留所有权。白鲸/白鲸#38599
COPY --from
builder-next 中:
- 添加了内联缓存支持 。docker/engine#215
--cache-from
- 允许 Outputs 配置。白鲸/白鲸#38898
- 修复了 gcr 解决方法令牌缓存。docker/engine的 #212
stopprogress
在下载错误时调用。docker/engine#215- Buildkit 现在使用 systemd 的 .docker/engine#260 的
resolv.conf
- 现在允许设置 buildkit 输出。docker/cli 的 #1766
- 查找特定于 Dockerfile 的 dockerignore 文件(例如 Dockerfile.dockerignore) 忽略的路径。docker/engine#215
- 自动检测 x86、arm 和 arm64 二进制文件是否可以执行进程。docker/engine#215
- 将 buildkit 更新为 1f89ec1。docker/engine的 #260
- 默认使用 Dockerfile 前端版本。docker/engine#215
docker/dockerfile:1.1
- 不再依赖外部镜像进行 COPY/ADD 操作。docker/engine#215
- 添加了内联缓存支持 。docker/engine#215
客户
- 向 添加了标志。docker/cli 的 #1765
--pids-limit
docker update
- 添加了对服务的 systctl 支持。docker/cli 的 #1754
- 添加了对 in compose 文件的支持。docker/cli 的 #1746
template_driver
- 添加了对 Windows 的支持。docker/cli #1606
--device
- 添加了对 Data Path Port 配置的支持。docker/cli 的 #1509
- 添加了 fast context switch: commands。docker/cli #1501 命令
- 新增对 docker/cli 的支持 #1430
--mount type=bind,bind-nonrecursive,...
- 添加了每个节点的最大副本数。docker/cli 的 #1612
- 添加了静默拉取镜像的选项。docker/cli 的 #882
- 添加了一个单独的标志。docker/cli #1130 命令
--domainname
- 在 中添加了对密钥驱动程序的支持。docker/cli 的 #1783
docker stack deploy
- 添加了在服务上使用 swarm 的功能。docker/cli 的 #1781
Configs
CredentialSpecs
- 添加了支持。docker/cli #1808
--security-opt systempaths=unconfined
- 添加了用于编写和运行 CLI 插件的基本框架。docker/cli #1564 docker/cli #1898
- 将 Docker 应用程序升级到 v0.8.0。docker/docker-ce-packaging的 #341
- 添加了对 Docker buildx 的支持。docker/docker-ce-packaging的 #336
- 新增支持 Docker Assemble v0.36.0。
- 新增支持 Docker Cluster v1.0.0-rc2。
- 新增对 Docker Template v0.1.4 的支持。
- 新增支持 Docker 注册表 v0.1.0-rc1。
- google.golang.org/grpc 升级到 v1.20.1。docker/cli 的 #1884
- CLI 已更改,以将特定于驱动程序的选项传递给 。docker/cli 的 #1767
docker run
- 提升了 Golang 1.12.5。docker/cli #1875 命令
docker system info
output 现在会隔离与 Client 端和 daemon 相关的信息。docker/cli 的 #1638- (实验性)当以 Kubernetes 为目标时,添加了对 in 的支持
compose-files 服务配置。docker/cli #1617 命令
x-pull-secret: some-pull-secret
- (实验性)以 Kubernetes 为目标时,添加了对 in compose-files 服务配置的支持。docker/cli #1617 命令
x-pull-policy: <Never|Always|IfNotPresent>
- cp、save、export:现在防止覆盖不规则文件。docker/cli 的 #1515
- 现在允许堆栈文件上的 npipe 卷类型。docker/cli 的 #1195
- 修复了 tty 初始大小错误。docker/cli #1529
- 修复了标签从环境变量复制值的问题。docker/cli 的 #1671
应用程序接口
- 将 API 版本更新为 v1.40。白鲸/白鲸#38089
- 向 endpoint 添加了警告,并将检测移至守护程序。白鲸/白鲸#37502
/info
- 添加了对 endpoint 的 HEAD 支持。白鲸/白鲸#38570
/_ping
- 添加了 headers 以禁用缓存终端节点。白鲸/白鲸#38569
Cache-Control
/_ping
- 向 添加了 、 和 versions 。白鲸/白鲸 #37974
containerd
runc
docker-init
/version
- 添加了未记录的端点和已注册的 BuildKit 控制器。白鲸/白鲸#38990
/grpc
实验的
- 使用 TTY 启用容器的检查点/恢复。白鲸/白鲸#38405
- LCOW:添加了对内存和 CPU 限制的支持。白鲸/白鲸#37296
- Windows:添加了 ContainerD 运行时。白鲸/白鲸#38541
- Windows:LCOW 现在需要 Windows RS5+。白鲸/白鲸#39108
安全
- mount:添加了 BindOptions.NonRecursive (API v1.40)。白鲸/白鲸#38003
- seccomp:已列入白名单。白鲸/白鲸#38895
io_pgetevents()
- seccomp:现在允许用于 4.8+ 内核。白鲸/白鲸#38137
ptrace(2)
运行
- 现在允许以非 root 用户身份运行(无根模式)。白鲸/白鲸#380050
dockerd
- Rootless:为 SUID 二进制文件提供可选支持。docker/engine的 #208
lxc-user-nic
- 在 HostConfig 中添加了 DeviceRequests 以支持 NVIDIA GPU。白鲸/白鲸 #38828
- 添加了对 Windows 的支持。白鲸/白鲸 #37638
--device
- 添加了对 linux 的支持。白鲸/白鲸#37043
memory.kernelTCP
- Windows 凭证规范现在可以直接传递到引擎。白鲸/白鲸#38777
- 在 docker update 中添加了 pids-limit 支持。白鲸/白鲸#32519
- 添加了对确切功能列表的支持。白鲸/白鲸#38380
- daemon:现在默认使用 'private' ipc 模式。白鲸/白鲸 #35621
- daemon:切换到信号量门控的 WaitGroup 以执行启动任务。白鲸/白鲸#38301
- 现在使用 docker.sock 所有权的文件而不是解析文件来
修复:。白鲸/白鲸#38126
idtools.LookupGroup
/etc/group
api.go doesn't respect nsswitch.conf
- CLI:修复了使用多引用筛选器时的镜像筛选器。白鲸/白鲸#38171
- 将 Golang 升级到 1.12.5。docker/engine 的 #209
- 升级到 1.2.6。白鲸/白鲸#39016
containerd
- 升级到 1.0.0-rc8,opencontainers/selinux v1.2.2。docker/engine#210
runc
- 升级到 v1.20.1。docker/engine#215
google.golang.org/grpc
- 在 auf 和层存储中优化了性能,用于创建/删除大规模并行容器。白鲸/白鲸 #39135 白鲸/白鲸 #39209
- 现在,对于 chroot Tar/Untar,Root 已传递到 chroot (CVE-2018-15664),moby/moby#39292
- 已使用 /dev bind mount 修复。白鲸/白鲸 #37665
docker --init
- 现在,当大于 255 并使用该选项时,可以获取正确的设备编号。白鲸/白鲸#39212
--device-read-bps
- 修复了 path 确实存在时的错误。白鲸/白鲸#39251
Path does not exist
联网
- 将 IPVLAN 驱动程序从实验性中移出。白鲸/白鲸 #38983
- 添加了对 'dangling' 过滤器的支持。莫比/Moby#31551 docker/libnetwork#2230
- 现在,当使用 更新服务时,将删除负载均衡器沙盒。docker/engine#213
--network-rm
- Windows:现在强制将 IPv4zero (0.0.0.0) 中指定的 nil IP 强制为 IPv4zero (0.0.0.0)。docker/lib网络#2376
PortBindings
群
- 添加了对每个节点的最大副本数的支持。白鲸/白鲸#37940
- 添加了对 Swarmkit 配置中的 GMSA CredentialSpecs 的支持。白鲸/白鲸#38632
- 添加了对服务中 sysctl 选项的支持。白鲸/白鲸#37701
- 添加了对节点标签筛选的支持。白鲸/白鲸 #37650
- Windows:在 docker service create + stack yml 中添加了对命名管道挂载的支持。白鲸/白鲸 #37400
- 现在支持 VXLAN UDP 端口配置。白鲸/白鲸#38102
- 现在在 Enforcer 中使用服务放置约束。docker/swarmkit #2857
- 增加了节点和密钥的最大接收 gRPC 消息大小。docker/engine#256
伐木
- 已在 Windows 上启用 gcplogs 驱动程序。白鲸/白鲸 #37717
- 为 syslog 格式添加了零填充RFC5424。白鲸/白鲸#38335
- 添加了日志事件的属性。白鲸/白鲸#38032
IMAGE_NAME
journald
折旧
- 弃用镜像清单 v2 schema1,改用 v2 schema2。Docker 的未来版本将删除 支持 v2 schema1 althogether。白鲸/白鲸 #39365
- 删除了 v1.10 迁移器。白鲸/白鲸#38265
- 现在在自动选择中跳过已弃用的 storage-drivers。白鲸/白鲸#38019
- 弃用了存储驱动程序并添加了警告。白鲸/白鲸#38090
aufs
- 删除了对 17.09 的支持。
有关已弃用的标记和 API 的更多信息,请参阅 目标删除日期的弃用信息.
已知问题
在大型集群的某些情况下,docker 信息可能作为 Swarm 部分的一部分, 包括错误 。这并不表示用户有任何失败或配置错误, 并且不需要回应。
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
将所有服务重新部署为新服务时,可能会发生 Orchestrator 端口冲突。由于许多 swarm manager 请求,某些服务无法接收流量,并在部署后导致错误。
404
- 解决方法:通过 重新启动所有任务。
docker service update --force
- 解决方法:通过 重新启动所有任务。
由于 FORWARD 链中缺少 Iptables 规则,流量无法流出 HOST 缺少的规则是:
/sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
运行一次。 - 受影响的版本:18.09.1、19.03.0
- 解决方法:使用脚本和 cron 定义重新添加这些规则。剧本
必须包含用于检查是否存在规则的 '-C' 命令和用于添加的 '-A' 命令
规则返回。定期在 cron 上运行脚本,例如,每分钟
CVE-2018-15664 具有目录遍历的符号链接交换攻击。解决方法,直到在即将发布的补丁版本中提供适当的修复:容器,然后再执行文件操作。白鲸/白鲸 #39252
docker pause
docker cp
由于 CVE 缓解而导致的回归。当 的源设置为 时,会产生错误。docker cp
/