Docker Engine发行说明
本文档介绍了Docker Engine的最新更改,新增功能,已知问题和修补程序。
注意: 客户端和容器运行时现在与Docker Engine 18.09中的守护程序位于不同的程序包中。用户应同时安装和更新所有三个软件包,以获取最新的修补程序版本。例如,在Ubuntu上:
sudo apt install docker-ce docker-ce-cli containerd.io
。有关详细信息,请参见相应的Linux发行版的安装说明。
版本20.10
20.10.6
2021-04-12
客户
- Apple Silicon(darwin / arm64)对Docker CLI的支持docker / cli#3042
- config:回退到v1.7.0之前的配置文件时,打印不赞成使用的警告
~/.dockercfg
。在将来的版本docker / cli#3000中将删除对此文件的支持
建造者
- 修复经典构建器而无视其不支持的Dockerfile选项的提示,并提示启用BuildKit而不是moby / moby#42197
记录中
- json文件:修复偶发的意外EOF错误moby / moby#42174
联网
- 修复了docker 20.10中的回归问题,导致在映射端口Moby / Moby时默认不再绑定IPv6地址#42205
- 修复API响应中未包含的隐式IPv6端口映射。在docker 20.10之前,默认情况下可通过IPv4和IPv6访问已发布的端口,但API仅包含有关IPv4(0.0.0.0)映射moby / moby#42205的信息
- 修复docker 20.10中的回归,导致docker-proxy在所有情况下都不会被终止moby / moby#42205
- 修复iptables转发规则在删除容器后无法清理的问题Moby / Moby#42205
包装
- 将容器更新为静态二进制文件的v1.4.4。apt / yum仓库上的containerd.io软件包已经带外了此更新。包括针对CVE-2021-21334的修复程序。莫比/莫比#42124
- Debian / Raspbian 11 Bullseye,Ubuntu 21.04 Hirsute Hippo和Fedora 34软件包docker / docker -ce-packaging#521 docker / docker-ce-packaging#522 docker / docker-ce-packaging#533
- 通过软件包在Linux amd64上提供Docker Scan CLI插件,
docker-scan-plugin
作为docker-ce-cli
软件包docker / docker-ce-packaging#537的推荐依赖项 - 包括适用于arm64 moby / moby#42141的VPNKit二进制文件
外挂程式
- 修复docker插件创建与旧版Docker moby / moby#42256不兼容的插件
无根
- 将RootlessKit更新到v0.14.1(另请参见v0.14.0 v0.13.2)moby / moby#42186 moby / moby#42232
- dockerd-rootless-setuptool.sh:创建CLI上下文“无根” moby / moby#42109
- dockerd-rootless.sh:禁止以root用户身份运行moby / moby#42072
- 绑定安装现有的Moby / Moby#42233时修复“不允许操作”
- overlay2:修复“ createDirWithOverlayOpaque(...)...输入/输出错误” moby / moby#42235
- overlay2:支持“ userxattr”选项(内核5.11)moby / moby#42168
- btrfs:允许非特权用户删除子卷(内核> = 4.18)moby / moby#42253
- cgroup2:将cgroup v2移出实验性Moby / moby#42263
20.10.5
2021-03-02
客户
- 恢复docker / cli#2960以修复挂起
docker start --attach
并删除虚假Unsupported signal: <nil>. Discarding
消息。docker / cli#2987。
20.10.4
2021-02-26
建造者
- 修复不正确的缓存匹配,以使用空层Moby / Moby#42061进行内联缓存导入
- 将BuildKit更新到v0.8.2 moby / moby#42061
- 解析器:避免在令牌获取时进行错误缓存
- fileop:修复校验和以包含输入索引,以防止某些高速缓存未命中
- 使用安装引用来解决有关键入错误的引用计数问题(修复
invalid mutable ref
错误) - git:仅为主要远程访问设置令牌,从而允许克隆具有不同凭据的子模块
- 确保在拉出后在/ var / lib / docker / buildkit / content / blobs / sha256中删除blob。要清理旧状态,请运行
builder prune
moby / moby#42065 - 修复并行拉同步回归Moby / Moby#42049
- 确保libnetwork状态文件不会泄漏moby / moby#41972
客户
- 修复
docker login
如果不存在配置文件的情况,则感到恐慌docker / cli#2959 - 修复
WARNING: Error loading config file: .dockercfg: $HOME is not defined
docker / cli#2958
运行
- 码头工人信息:沉默无法处理的警告moby / moby#41958
- 避免为XGlobalHeader moby / moby#42017创建父目录
- 创建丢失的目录moby / moby#42017时使用0755权限
- 在映像配置中没有平台匹配时回退到清单列表moby / moby#42045 moby / moby#41873
- 使用配置为moby / moby#41974的自定义默认运行时修复设置上的守护程序恐慌
- 当守护程序配置为空时修复恐慌Moby / moby#41976
- 使用无效的设备cgroup规则启动容器时,修复守护进程死机规则moby / moby#42001
- 当用户名和UID与Moby / Moby#42013匹配时修复userns-remap选项
- 静态:将Runc二进制文件更新为v1.0.0-rc93 Moby / Moby#42014
记录仪
labels-regex
即使labels
未设置Moby / Moby,也要配置荣誉配置#42046- 正确处理长日志消息,以防止awslog在非阻塞模式下拆分大于16kB的事件mobymoby#41975
无根
- 通过将systemd KillMode设置为混合Moby / moby,防止停止时服务挂起#41956
- dockerd-rootless.sh:添加错字警卫Moby / moby#42070
- 将rootlesskit更新到v0.13.1以修复对IPv6地址的处理moby / moby#42025
- 在用户Moby / moby中允许mknodding FIFO #41957
安全
- 配置文件:seccomp:更新到Linux 5.11 syscall列表moby / moby#41971
一群
- 修复重启Moby / Moby后心跳不持久的问题#42060
- 修复潜在的拖延任务Moby / Moby#42060
- 仅在或提供docker / cli#2963时进行修复
--update-order
和--rollback-order
标记--update-order
--rollback-order
- 修复
docker service rollback
在某些情况下返回非零退出代码docker / cli#2964 - 修复docker / cli#2964上进度条方向不一致的问题
docker service rollback
20.10.3
2021-02-01
安全
- CVE-2021-21285防止无效映像崩溃docker守护程序
- CVE-2021-21284锁定文件权限以防止重新映射的根访问docker状态
- 确保在使用BuildKit进行构建时应用了AppArmor和SELinux配置文件
客户
- 在导入上下文之前检查上下文,以减少提取的文件逃避上下文存储的风险
- Windows:阻止从当前目录docker / cli#2950执行某些二进制文件
20.10.2
2021-01-04
运行
- 修复使用重启策略还原容器但仍然无法启动moby / moby的守护程序启动挂起的问题#41729
- overlay2:修复了因数据根长度为24字节的Moby / moby而导致无法构建或运行容器的一站式错误#41830
- systemd:
sd_notify STOPPING=1
关闭moby / moby#41832时发送
联网
- 修复IPv6端口转发moby / moby#41805 moby / libnetwork#2604
一群
- 修复Moby / Moby#41806
replicated-job
和global-job
服务模式的过滤
包装
- buildx更新到v0.5.1 docker / docker -ce-packaging#516
20.10.1
2020-12-14
建造者
- buildkit:已更新至v0.8.1,具有各种错误修复程序moby / moby#41793
包装
- 还原systemd单元中的更改,该更改可能由于启动顺序冲突而导致docker无法启动docker / docker-ce-packaging#514
- buildx更新到v0.5.0 docker / docker -ce-packaging#515
20.10.0
2020-12-08
弃用/移除
有关所有不推荐使用的功能的概述,请参阅“不推荐使用的引擎功能”页面。
docker pull
从不兼容的注册中心-ing不支持按摘要提取docker / cli#2872发出警告和弃用通知- 未经身份验证的TCP访问Moby / Moby的更严格的警告和弃用通知#41285
- 弃用KernelMemory(
docker run --kernel-memory
)moby / moby#41254 docker / cli#2652 - 弃用
aufs
存储驱动程序docker / cli#1484 - 使用外部K / V商店弃用主机发现和覆盖网络Moby / Moby#40614 Moby / Moby #40510
- 弃用Dockerfile旧版'ENV名称值'语法,
ENV name=value
改为使用docker / cli#2743 - 删除API v1.41及更高版本的不赞成使用的“过滤器”参数moby / moby#40491
- 在Push Moby / Moby上禁用分发清单v2模式1 #41295
- 在这种情况下,删除hack MalformedHostHeaderOverride破坏旧的docker客户端(<= 1.12),请设置
DOCKER_API_VERSION
moby / moby#39076 - 删除“ docker engine”子命令docker / cli#2207
- 从“ dab”文件docker / cli#2216中删除实验性的“部署”
- 删除已弃用
docker search --automated
并--stars
标记docker / cli#2338 - 不再在引擎标签docker / cli#2326中允许保留的名称空间
原料药
- 将API版本更新为v1.41
- 不需要“实验性”的指标API Moby / moby#40427
GET /events
prune
修剪资源完成后,现在返回事件moby / moby#41259- 剪枝事件为返回
container
,network
,volume
,image
,和builder
,和具有reclaimed
属性,表示的空间回收(以字节为单位)的量
- 剪枝事件为返回
- 添加
one-shot
统计信息选项以不填充统计信息moby / moby#40478 - 将操作系统版本信息添加到系统信息的API(
/info
)moby / moby#38349 - 将DefaultAddressPools添加到docker info moby / moby#40714
- 在服务Moby / Moby上为PidsLimit添加API支持#39882
建造者
- buildkit,dockerfile:支持
RUN --mount
选项,而无需指定实验性dockerfile#syntax
指令。Moby / Buildkit#1717 - dockerfile:
ARG
命令现在支持在同一行上定义多个构建arg,类似于ENV
moby / buildkit#1692 - dockerfile:
--chown
标志中ADD
现在允许参数扩展moby / buildkit#1473 - buildkit:获取授权令牌已移至客户端(如果客户端支持)。密码不再泄漏到构建守护进程中,并且当访问凭据或令牌时,用户可以从构建输出中看到。Moby / Buildkit#1660
- buildkit:与注册表进行推送和拉取通信时出现连接错误,现在会触发重试Moby / buildkit#1791
- buildkit:Git源现在通过构建密钥支持令牌认证moby / moby#41234 docker / cli#2656 moby / buildkit#1533
- buildkit:从git源构建现在支持转发SSH套接字以进行认证moby / buildkit#1782
- buildkit:避免生成过多日志以导致崩溃或减慢构建速度的构建。如果需要,将执行裁剪。Moby / Buildkit#1754
- buildkit:将默认的Seccomp配置文件更改为Docker moby / buildkit#1807提供的配置文件
- buildkit:改进了对在Windows上公开SSH代理套接字的支持moby / buildkit#1695
- buildkit:使用--progress = plain moby / buildkit#1435时,默认情况下禁用截断
- buildkit:由多个构建Moby / buildkit#1551共享时,可以更好地处理客户端会话丢失
- buildkit:机密:允许与env moby / moby#41234 docker / cli#2656 moby / buildkit#1534提供机密
- 支持
--secret id=foo,env=MY_ENV
作为将秘密值存储到文件的替代方法。 --secret id=GIT_AUTH_TOKEN
如果存在,则将加载env,而文件不存在。
- 支持
- buildkit:支持镜像后备,不安全的TLS和自定义TLS配置moby / moby#40814
- buildkit:remotecache:步行结果时仅访问每个项目一次moby / moby#41234 moby / buildkit#1577
- 在更大的图表上提高性能和CPU使用率
- buildkit:当本地映像平台与moby / moby不匹配时检查远程#40629
- buildkit:图像导出:在创建新图层Blob时使用正确的媒体类型moby / moby#41234 moby / buildkit#1541
- buildkit:progressui:修复日志时间格式moby / moby#41234 docker / cli#2656 moby / buildkit#1549
- buildkit:缓解并行推送Moby / moby#41234 moby / buildkit#1548上的容器化问题
- buildkit:内联缓存:修复重复blob的处理moby / moby#41234 moby / buildkit#1568
- 修复了https://github.com/moby/buildkit/issues/1388缓存-无法正常工作的问题
- 修复https://github.com/moby/moby/issues/41219从缓存的图层构建的图像缺少数据
- 允许ssh://用于远程上下文URL moby / moby#40179
- 构建器:删除旧版构建的会话处理(是实验性的)moby / moby#39983
客户
- 将群作业支持添加到CLI docker / cli#2262
- 添加
-a/--all-tags
到docker push docker / cli#2220 - 添加对Kubernetes用户名/密码身份验证docker / cli#2308的支持
- 添加
--pull=missing|always|never
到run
和create
命令泊坞窗/ CLI#1498 - 将
--env-file
标志添加到来docker exec
从文件docker / cli#2602解析环境变量 -n
为--tail
选项docker / cli#2646添加简写- 添加日志驱动程序和选项以服务检查“漂亮”格式的docker / cli#1950
- docker run:使用docker / cli#2024指定cgroup命名空间模式
--cgroupns
docker manifest rm
从本地存储docker / cli#2449中删除清单清单草稿的命令- 在“ docker版本”和“ docker info”中添加“上下文” docker / cli#2500
- 将平台标志传播到容器创建API docker / cli#2551
- 该
docker ps --format
标志现在具有一个.State
占位符,可打印容器的状态,而无需其他有关正常运行时间和运行状况检查的详细信息docker / cli#2000 - 添加对docker-compose schema v3.9 docker / cli#2073的支持
- 添加对docker push
--quiet
docker / cli#2197的支持 - 如果启用了BuildKit,则隐藏BuildKit不支持的标志docker / cli#2123
- 更新标志说明
docker rm -v
以阐明该选项仅删除匿名(未命名)卷docker / cli#2289 - 改善docker服务docker / cli#2341的任务打印
- docker info:按字母顺序列出CLI插件docker / cli#2236
- 的处理的顺序的修复
--label-add/--label-rm
,--container-label-add/--container-label-rm
和--env-add/--env-rm
标志上docker service update
,以允许更换现有值搬运工/ CLI#2668 - 修复
docker rm --force
如果一个或多个容器不存在的情况下返回非零退出代码docker / cli#2678 - 通过使用
total_inactive_file
代替docker / cli#2415改善内存统计信息的显示cache
- 缓解别名过多的docker / cli#2117的YAML文件
- 仅使用源字段docker / cli#2243设置配置或密钥时,允许使用高级语法
- 修复读取包含
username
和password
身份验证的配置文件,即使auth
为空docker / cli#2122 - docker cp:无法在统计目标docker / cli#2221时阻止NPE
- config:在configfile docker / cli#2228上保留所有权和权限
记录中
- 支持
docker logs
使用所有日志记录驱动程序阅读(尽最大努力)moby / moby#40543 - 添加
splunk-index-acknowledgment
日志选项以与启用了索引确认的Splunk HEC一起使用Moby / Moby#39987 - 将部分元数据添加到日记日志Moby / Moby#41407
- 减少日志文件读取器Moby / Moby的分配#40796
- 流利的:添加流利的异步,流利的请求确认,并弃用流利的异步连接Moby / Moby#39086
运行
- 支持cgroup2 Moby / Moby #40174 Moby / Moby #40657 Moby / Moby#40662
- cgroup2:可用时,默认使用“ systemd” cgroup驱动程序moby / moby#40846
- 新的存储驱动程序:fuse-overlayfs moby / moby#40483
- 将容器化的二进制文件更新为v1.4.3 Moby / Moby#41732
docker push
现在默认为latest
标记,而不是所有标记moby / moby#40302- 通过将max-download-attempts添加到配置文件moby / moby#39949中,增加了更改丢失连接时更改连接尝试期间重新连接尝试次数的功能。
- 使用现在默认的
io.containerd.runc.v2
运行时Moby / moby#41182添加对容器v2填充程序的支持 - cgroup v1:将默认运行时更改为io.containerd.runc.v2。需要带容器的v1.3.0或更高版本。推荐使用v1.3.5或更高版本moby / moby#41210
- 在自己的cgroup命名空间中启动容器moby / moby#38377
- 为CIFS卷启用DNS查找moby / moby#39250
- 使用MemAvailable而不是MemFree来估计实际的可用内存Moby / Moby#39481
- 现在,当以特权模式启动容器时
--device
,docker run
将使用in中的标志moby / moby#40291 - 强制保留内部标签Moby / Moby#40394
- 将最小内存限制提高到6M,以解决容器启动moby / moby#41168期间运行时使用的更高内存
- 在支持的内核上添加对
CAP_PERFMON
,CAP_BPF
和CAP_CHECKPOINT_RESTORE
的支持moby / moby#41460 - 供应商runc v1.0.0-rc92 Moby / moby#41344 Moby / moby#41317
- 信息:添加有关缺少blkio cgroup支持moby / moby#41083的警告
- 接受容器上的平台规范create moby / moby#40725
- 修复了使用空格moby / moby#41377查找用户名和组名的处理
联网
- 在Linux Moby / Moby#40007上的dockerd中支持host.docker.internal
- 在/ etc / hosts moby / moby#39837中包含链接容器的IPv6地址
--ip6tables
启用IPv6 iptables规则(仅在实验时)moby / moby#41622- 如果主机名!=容器名称moby / moby#39204,则为主机名添加别名
- 更好地选择DNS服务器(带有systemd)moby / moby#41022
- 将docker接口添加到firewalld docker区域moby / moby#41189 moby / libnetwork#2548
- 修复了CentOS8 docker / for-linux#957上的DNS问题
- 修复了运行带有FirewallBackend = nftables moby / libnetwork#2496的Firewalld的RHEL 8上的端口转发
- 修复了报告“在CreateEndpoint期间无法获取网络” moby / moby#41189 moby / libnetwork#2554的问题
- 记录错误而不是禁用IPv6路由器通告失败Moby / Moby#41189 Moby / libnetwork#2563
--default-address-pool
在某些情况下不再忽略选项moby / moby#40711- 使用无效的地址池moby / moby#40808 moby / libnetwork#2538产生错误
DOCKER-USER
当IPTableEnable = false Moby / moby#40808 moby / libnetwork#2471时未创建修复链- 解决在系统环境中启动时出现的恐慌问题Moby / Moby#40808 Moby / libnetwork#2544
- 修复了阻止容器通过Macvlan内部网络进行通信的问题Moby / Moby#40596 Moby / libnetwork#2407
- Fix InhibitIPv4 nil panic moby / moby#40596
- 修复Windows覆盖网络删除中的VFP泄漏Moby / Moby#40596 Moby / libnetwork#2524
包装
- docker.service:在单位文件moby / moby#41297中将multi-user.target添加到After =
- docker.service:允许套接字激活moby / moby#37470
- seccomp:在libseccomp moby / moby#41395上删除dockerd中的依赖项
无根
- 无根:毕业于实验性白鲸/白鲸#40759
- 添加dockerd-rootless-setuptool.sh moby / moby#40950
- 支持
--exec-opt native.cgroupdriver=systemd
Moby / Moby#40486
安全
- 在Glibc Moby / moby#39612下修复chroot内基于nsswitch的配置的CVE-2019-14271加载
- seccomp:白名单
clock_adjtime
。CAP_SYS_TIME
调整Moby / moby仍然需要#40929 - seccomp:将openat2和faccessat2添加到默认的seccomp配置文件moby / moby#41353
- seccomp:在默认seccomp配置文件moby / moby中允许'rseq'系统调用#41158
- seccomp:允许系统调用成员Moby / Moby#40731
- seccomp:将与io-uring相关的系统调用列入白名单,moby / moby#39415
- 添加默认sysctls以允许ping套接字和特权端口而没有功能moby / moby#41030
- 修复seccomp配置文件以克隆syscall moby / moby#39308
一群
- 添加对群作业Moby / Moby#40307的支持
- 为堆栈/服务命令添加功能支持docker / cli#2687 docker / cli#2709 moby / moby#39173 moby / moby#41249
- 添加对发送服务运行和所需任务计数moby / moby的支持#39231
- 服务:支持
--mount type=bind,bind-nonrecursive
moby / moby#38788 - 在Swarm服务上支持ulimit。moby / moby#41284 docker / cli#2712
- 修复了服务日志可能会泄漏工作程序Moby / Moby上的goroutines的问题#40426