Docker 引擎发行说明

1.13.1 (2017-02-08)

重要提示:在 Linux 发行版上,devicemapper默认存储驱动程序现在默认使用overlay2, 或overlay(如果内核支持它)。要使用devicemapper,您可以通过daemon选项手动配置要使用的存储驱动程序--storage-driver,或者通过在配置文件中设置“storage-driver” daemon.json

重要提示:与 Docker 1.12 中引入的实验版本相比,在 Docker 1.13 中,托管插件 api 发生了变化。在升级到 Docker 1.13之前,您必须卸载随 Docker 1.12 安装的插件 。您可以使用命令卸载插件。docker plugin rm

如果您已经升级到 Docker 1.13,而没有卸载以前安装的插件,则当 Docker 守护进程启动时,您可能会看到以下消息:

Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv

要手动删除所有插件并解决此问题,请执行以下步骤:

  1. 从以下位置删除plugins.json:/var/lib/docker/plugins/
  2. 重新启动 Docker。验证 Docker 守护程序启动时没有错误。
  3. 重新安装您的插件。

贡献

  • 不需要自定义构建 tini #28454
  • 升级到 Go 1.7.5 #30489

远程 API (v1.26) 和客户端

  • 使用 compose 文件支持 docker stack 部署中的机密 #30144

运行

  • 修复#30378中的大小问题docker system df
  • docker inspect修复了Swarm 证书过期时 出现的错误。 #29246
  • 修复 v1 插件上的死锁并激活错误 #30408
  • 修复 SELinux 回归 #30649

插件

  • 在 Swarm 模式下支持全局范围的网络插件 (v2) #30332
  • 添加docker plugin upgrade #29414

Windows

  • 修复 Windows 中旧插件的小回归 #30150
  • 修复 Windows 上的警告 #30730

1.13.0 (2017-01-18)

重要提示:在 Linux 发行版上,devicemapper默认存储驱动程序现在默认使用overlay2, 或overlay(如果内核支持它)。要使用devicemapper,您可以通过daemon选项手动配置要使用的存储驱动程序--storage-driver,或者通过在配置文件中设置“storage-driver” daemon.json

重要提示:与 Docker 1.12 中引入的实验版本相比,在 Docker 1.13 中,托管插件 api 发生了变化。在升级到 Docker 1.13之前,您必须卸载随 Docker 1.12 安装的插件 。您可以使用命令卸载插件。docker plugin rm

如果您已经升级到 Docker 1.13,而没有卸载以前安装的插件,则当 Docker 守护进程启动时,您可能会看到以下消息:

Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv

要手动删除所有插件并解决此问题,请执行以下步骤:

  1. 从以下位置删除plugins.json:/var/lib/docker/plugins/
  2. 重新启动 Docker。验证 Docker 守护程序启动时没有错误。
  3. 重新安装您的插件。

建设者

  • 添加在构建时指定用作缓存源的图像的功能。这些镜像不需要有本地父链,可以从其他注册中心拉取 #26839
  • (实验性)添加选项以在成功构建后将图像层压缩到 FROM 图像 #22641
  • 修复 dockerfile 解析器转义后带有空行的问题 #24725
  • 添加对在映像构建期间压缩构建上下文的支持 #25837
  • 添加--networkdocker build #27702
  • --label修复flag ondocker build#26027之间不一致的行为docker run
  • 修复使用覆盖存储驱动程序时图像层不一致的问题 #27209
  • 现在允许未使用的构建参数。出现警告而不是错误并且构建失败 #27412
  • 修复 Windows 上的构建器缓存问题 #27805
  • 允许USERWindows 上的构建器 #28415
  • 在 Windows 上处理不区分大小写的环境 #28725

贡献

  • 添加对在 PPC64LE 上为 Ubuntu 16.04 Xenial 构建 docker debs 的支持 #23438
  • 添加对在 s390x 上为 Ubuntu 16.04 Xenial 构建 docker debs 的支持 #26104
  • 添加对在 PPC64LE 上为 Ubuntu 16.10 Yakkety Yak 构建 docker debs 的支持 #28046
  • 为 VMWare Photon OS 添加 RPM 构建器 #24116
  • 将 shell 补全添加到 tgz #27735
  • 更新安装脚本以允许在中国使用镜像 #27005
  • 添加适用于 Ubuntu 16.10 Yakkety Yak 的 DEB 构建器 #27993
  • 添加适用于 Fedora 25 的 RPM 构建器 #28222
  • 添加make deb对 aarch64 的支持 #27625

分配

  • 将公证依赖项更新为 0.4.2( 此处有完整的变更日志) #27074
    • 支持在 Windows docker/notary 上编译#970
    • 改进了客户端身份验证错误的错误消息 docker/notary#972
    • 支持查找~/.docker/trust/private目录中任何位置的密钥,而不仅仅是在~/.docker/trust/private/root_keysdocker ~/.docker/trust/private/tuf_keys /notary#981下
    • 以前,如果更新出现任何错误,客户端都会依靠缓存。现在,我们仅在出现网络错误、服务器不可用或丢失 TUF 数据时才执行此操作。无效的 TUF 数据将导致更新失败 - 例如,如果根旋转无效。 Docker/公证人#982
    • 改进根验证和 yubikey 调试日志记录 docker/notary#858 docker/notary#891
    • 如果根证书或委托证书即将到期,则发出警告 docker/notary#802
    • 如果角色元数据即将过期,则发出警告 docker/notary#786
    • 修复密码短语检索尝试计数和终端检测 docker/notary#906
  • 当不同用户将相同层推送到经过身份验证的注册表时,避免不必要的 blob 上传 #26564
  • 允许外部存储注册表凭据 #26354

记录

  • 标准化所有日志记录驱动程序中的默认日志记录标签值 #22911
  • 记录长日志行时提高性能和内存使用 #22982
  • 为 Windows 启用 syslog 驱动程序 #25736
  • 添加 Logentries 驱动程序 #27471
  • 更新 AWS 日志驱动程序以支持标签 #27707
  • 对 fluidd 的 Unix 套接字支持 #26088
  • 在 Windows 上启用 Fluentd 日志记录驱动程序 #28189
  • 用作日志字段名称时清理 docker 标签 #23725
  • 修复docker logs --tail返回的行数少于预期的 问题#28203
  • Splunk 日志记录驱动程序:性能和可靠性改进 #26207
  • Splunk 日志记录驱动程序:可配置格式并跳过验证连接 #25786

联网

  • 添加--attachable网络支持以能够docker run在集群模式覆盖网络中工作 #25962
  • 使用#27917#28943--publish中的选项在服务中添加对主机端口 PublishMode 的支持docker service create
  • 添加对 Windows Server 2016 覆盖网络驱动程序的支持(需要即将推出的 ws2016 更新) #28182
  • 将默认FORWARD策略更改为DROP #28257
  • 添加对在 Windows 上为预定义网络指定静态 IP 地址的支持 #22208
  • 修复不使用 IPv6 地址的 --publish标志#27860docker run
  • 修复带有掩码的检查网络显示网关 #25564
  • 修复网桥中多个地址可能导致--fixed-cidr地址不正确的 问题#26659
  • 添加创建时间戳到docker network inspect #26130
  • 显示docker network inspect群覆盖网络的对 等节点#28078
  • 为服务 VIP 地址启用 ping #28019

插件

  • 将插件移出实验 #28226
  • 添加#--force 25096docker plugin remove
  • 添加对动态重新加载授权插件的支持 #22770
  • 在#25556中添加描述docker plugin ls
  • 添加-f/--formatdocker plugin inspect #25990
  • 添加docker plugin create命令 #28164
  • 将请求的 TLS 对等证书发送到授权插件 #27383
  • 支持 Swarm 模式下的全局网络和 ipam 插件 #27287
  • 分为docker plugin install两个 API 调用/privileges/pull #28963

远程 API (v1.25) 和客户端

  • docker stack deploy来自 Compose 文件的 支持#27998
  • (实验)实施检查点并恢复 #22049
  • 添加--format标志到docker info #23808
  • --name#23830中删除docker volume create
  • 添加docker stack ls #23886
  • 添加新的is-taskps 过滤器 #24411
  • 添加--env-file标志到docker service create #24844
  • 添加#--format 24987docker stats
  • 默认docker node psself集群节点 #25214
  • 添加#--group 25317docker service create
  • 添加--no-trunc到服务/节点/堆栈 ps 输出 #25337
  • 添加日志,ContainerAttachOptions以便客户端可以请求检索容器日志作为附加过程的一部分 #26718
  • 允许客户端与旧服务器对话 #27745
  • 通知用户客户端容器删除正在进行中 #26074
  • 添加Isolation到 /info 端点 #26255
  • 添加userns到 /info 端点 #27840
  • 不允许在服务端点中同时请求多种模式 #26643
  • 向 /containers/create API 添加功能,以更精细、更安全的方式指定安装 #22373
  • 添加--format标志到network ls# volume ls 23475
  • 允许顶级docker inspect命令检查任何类型的资源 #23614
  • 添加 --cpus 标志来控制docker run和 的cpu 资源docker create,并添加NanoCPUsHostConfig #27958
  • 允许取消设置--entrypointindocker rundocker create #23718
  • docker image通过添加和命令来重构 CLI 命令docker container以提高一致性 #26025
  • 从输出 中删除COMMAND#28029service ls
  • 添加--formatdocker events #26268
  • 添加--dns-optiondocker run #28186
  • 将图像 ID 添加到容器提交事件 #28128
  • 将外部二进制版本添加到 docker info #27955
  • 在#28042Manager Addresses的输出中添加信息docker info
  • 为#27872添加新的参考过滤器docker images

运行

  • 添加--experimental守护进程标志以启用实验性功能,而不是在单独的版本中提供它们 #27223
  • 添加--shutdown-timeout守护进程标志以指定默认超时(以秒为单位),以便在守护进程退出之前正常停止容器 #23036
  • 添加--stop-timeout指定单个容器停止的超时值(以秒为单位) #22566
  • 添加一个新的守护进程标志--userland-proxy-path以允许配置用户态代理,而不是使用#26882docker-proxy中的硬编码$PATH
  • --init不断添加布尔标志dockerd僵尸收割 init 进程用作 PID 1 docker run# 26061 #28037
  • 添加新的守护进程标志以允许配置二进制文件 --init-path的路径#26941docker-init
  • 在配置中添加对实时重新加载不安全注册表的支持 #22337
  • 在 Windows 守护进程上添加对存储选择大小的支持 #23391
  • docker run --rm通过将其从客户端移动到守护进程 来提高可靠性#20848
  • 添加对--cpu-rt-period和标志的支持,允许容器在内核中启用 --cpu-rt-runtime时运行实时线程#23430CONFIG_RT_GROUP_SCHED
  • 允许并行停止、暂停、取消暂停 #24761 / #26778
  • 为 Overlay2 实施 XFS 配额 #24771
  • 修复#24850中的部分/完整过滤器问题service tasks --filter
  • 允许引擎在用户命名空间内运行 #25672
  • 修复使用 devicemapper graphdriver 时设备延迟删除和恢复设备之间的竞争条件 #23497
  • 添加docker statsWindows 中的支持 #25737
  • 允许使用--pid=hostand--net=host--userns=host #25771
  • (实验)为基本containerimagedaemon操作 添加指标(Prometheus)输出#25820
  • 修复#25905docker stats中的问题NetworkDisabled=true
  • 添加docker topWindows 中的支持 #25891
  • 记录执行进程的 pid #27470
  • 通过#27599添加对查找用户/组的支持getent
  • 添加新docker system命令和用于系统资源管理的子命令,以及df子命令 #26108 #27525 / #27525prunedocker {container,image,volume,network} prune
  • 修复使用 devicemapper 在 ENOSPC 上将 xfs max_retries 设置为 0 时无法停止或终止容器的问题 #26212
  • 修复了docker cp在 CentOS 上使用 devicemapper 无法复制到容器卷目录的问题 #28047
  • 提升覆盖(2) graphdriver #27932
  • 添加--seccomp-profile守护进程标志以指定覆盖默认值的 seccomp 配置文件的路径 #26276
  • 修复守护docker inspect进程--default-ulimit上设置的 ulimit #26405
  • 添加旧内核构建期间覆盖问题的解决方法 #28138
  • 在#26461上添加TERM环境变量docker exec -t
  • 尊重容器的--stop-signal设置docker kill #26464

集群模式

  • 添加秘密管理 #27794
  • 添加对模板服务选项(主机名、安装和环境变量)的支持 #28025
  • 在#26906的输出中显示端点模式docker service inspect --pretty
  • docker service ps通过缩短任务名称中的服务 ID 使输出更容易忍受#28088
  • 默认docker node ps为当前节点 #25214
  • --dns、 - -dns-opt、 和添加--dns-search到服务创建中。 #27567
  • 添加--forcedocker service update #27596
  • 添加--health-*--no-healthcheck标记到docker service create# docker service update 27369
  • 添加-qdocker service ps #27654
  • 从 中删除--name标志docker service update。该标志仅在 上起作用,因此已从命令 docker service create中删除#26988update
  • 修复工作节点因暂时性网络问题而无法恢复的问题 #26646
  • 添加对健康感知负载平衡和 DNS 记录的支持 #27279
  • 添加--hostnamedocker service create #27857
  • 添加--hostdocker service create, 和--host-add,--host-rmdocker service update #28031
  • --tty标志添加到docker service create/ update #28076
  • 自动检测、存储和公开管理器看到的节点 IP 地址 #27910
  • 管理器密钥和 raft 数据的其余加密 #27967
  • 添加--update-max-failure-ratio,--update-monitor--rollback标志到docker service update #26421
  • docker swarm init修复在容器内运行 时地址自动发现的问题#26457
  • (实验)添加docker service logs命令来查看服务日志 #28089
  • 通过摘要固定图像docker service createupdate #28173
  • 为和添加短 ( -f) 标志#28196docker node rm --forcedocker swarm leave --force
  • 添加自定义 Raft 快照的选项 ( --max-snapshots, --snapshot-interval) #27997
  • 如果被摘要固定,则不要撤回图像 #28265
  • Windows 集群模式支持 #27838
  • 允许在服务上更新主机名 #28771
  • 支持 v2 插件 #29433
  • 添加服务的内容信任 #29469

体积

  • 添加对卷上标签的支持 #21270
  • 添加对按标签过滤卷的支持 #25628
  • 添加一个--force标志来docker volume rm强制清除已删除卷的数据 #23436
  • 增强docker volume inspect显示创建卷时使用的所有选项 #26671
  • 添加对本地 NFS 卷的支持以解析主机名 #27329

安全

  • 修复容器中共享卷的 selinux 标签 #23024
  • 禁止/sys/firmware/**使用 apparmor 进行访问 #26618

弃用

  • 将该命令标记docker daemon为已弃用。守护进程被移动到一个单独的二进制文件 ( dockerd),并且应该使用 #26834
  • 弃用未版本控制的 API 端点 #28208
  • 删除 Ubuntu 15.10 (Wily Werewolf) 作为受支持的平台。 Ubuntu 15.10 已停产,不再接收更新 #27042
  • 删除 Fedora 22 作为受支持的平台。 Fedora 22 已停产,不再接收更新 #27432
  • 删除 Fedora 23 作为受支持的平台。 Fedora 23 已停产,不再接收更新 #29455
  • 弃用#27207repo:shortid上的语法docker pull
  • d_type弃用不支持 Overlay 和 Overlay2 存储驱动程序的 支持文件系统#27433
  • MAINTAINER在 Dockerfile 中 弃用#25466
  • 弃用filter端点的参数/images/json #27872
  • 弃用设置重复的引擎标签 #24533
  • 弃用#28437中的“顶级”网络信息NetworkSettings

1.12.6 (2017-01-10)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

注意:当您指定该选项时,Docker 1.12.5 将正确验证是否提供了 IPv6 子网或 IPAM 驱动程序是否可以提供一个子网--ipv6

如果您当前使用该--ipv6选项而不指定该 --fixed-cidr-v6选项,Docker 守护进程将拒绝启动并显示以下消息:

Error starting daemon: Error initializing network controller: Error creating
                       default "bridge" network: failed to parse pool request
                       for address space "LocalDefault" pool " subpool ":
                       could not find an available, non-overlapping IPv6 address
                       pool among the defaults to assign to the network

要解决此错误,请删除该标志(以保留与 Docker 1.12.3 及更早版本中相同的行为),或者提供 IPv6 子网作为该标志--ipv6的值。--fixed-cidr-v6

同样,如果您--ipv6在使用默认 IPAM 驱动程序创建网络时指定该标志,而不提供 IPv6 --subnet,则网络创建将失败并显示以下消息:

Error response from daemon: failed to parse pool request for address space
                            "LocalDefault" pool "" subpool "": could not find an
                            available, non-overlapping IPv6 address pool among
                            the defaults to assign to the network

要解决此问题,请删除该标志(以保留与 Docker 1.12.3 及更早版本中相同的行为),或者提供 IPv6 子网作为该标志--ipv6的值 。--subnet

如果您使用支持自动分配 IPv6 子网的外部 IPAM 驱动程序,则网络创建将会成功。

运行

  • 修复 runC 权限提升 (CVE-2016-9962)

1.12.5 (2016-12-15)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

注意:当您指定该选项时,Docker 1.12.5 将正确验证是否提供了 IPv6 子网或 IPAM 驱动程序是否可以提供一个子网--ipv6

如果您当前使用该--ipv6选项而不指定该 --fixed-cidr-v6选项,Docker 守护进程将拒绝启动并显示以下消息:

Error starting daemon: Error initializing network controller: Error creating
                       default "bridge" network: failed to parse pool request
                       for address space "LocalDefault" pool " subpool ":
                       could not find an available, non-overlapping IPv6 address
                       pool among the defaults to assign to the network

要解决此错误,请删除该标志(以保留与 Docker 1.12.3 及更早版本中相同的行为),或者提供 IPv6 子网作为该标志--ipv6的值。--fixed-cidr-v6

同样,如果您--ipv6在使用默认 IPAM 驱动程序创建网络时指定该标志,而不提供 IPv6 --subnet,则网络创建将失败并显示以下消息:

Error response from daemon: failed to parse pool request for address space
                            "LocalDefault" pool "" subpool "": could not find an
                            available, non-overlapping IPv6 address pool among
                            the defaults to assign to the network

要解决此问题,请删除该标志(以保留与 Docker 1.12.3 及更早版本中相同的行为),或者提供 IPv6 子网作为该标志--ipv6的值 。--subnet

如果您使用支持自动分配 IPv6 子网的外部 IPAM 驱动程序,则网络创建将会成功。

运行

  • 修复发送 stdin 关闭事件时的竞争 #29424

联网

  • 修复旧版 docker 版本中 创建网络时使用--ipv6ipv6 且不使用 ipv6时 docker network ls 中的恐慌#29416--subnet

贡献

  • 修复达尔文上的编译 #29370

1.12.4 (2016-12-12)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

运行

  • 修复卷元数据未删除的问题 #29083
  • 异步关闭流以防止持有容器锁 #29050
  • 修复新创建的容器卷的 selinux 标签 #29050
  • 删除主机名验证 #28990
  • 修复 IO 竞争引起的死锁 #29095 #29141
  • 如果容器正在重新启动,则返回空统计信息 #29150
  • 修复卷存储锁定 #29151
  • 确保 API 中的状态代码一致 #29150
  • 修复overlay2中不正确的不透明目录权限 #29093
  • 检测插件内容并在#29297上出错docker pull

集群模式

  • 拒绝群规范未命名为“默认” #29152

联网

记录

  • 更新 syslog 日志驱动程序 #29150

贡献

  • 在 fedora 中安装之前运行“dnf 升级” #29150
  • 将构建日期添加回 RPM 包 #29150
  • deb 包文件名更改为包含发行版以区分发行版代码名称 #27829

1.12.3 (2016-10-26)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

运行

  • 修复容器中环境功能的使用 (CVE-2016-8867) #27610
  • 防止 Windows 的 libcontainerd 中出现死锁 #27136
  • 修复 CopyFileWithTar 中的错误报告 #27075
  • 当容器重新启动时将健康状态重置为启动 #27387
  • 正确处理存储目录中的共享挂载传播 #27609
  • 修复 docker exec #27610
  • 修复与 containerd 事件日志的向后兼容性 #27693

集群模式

  • 修复重启策略的转换 #27062

联网

记录

  • 将 Fluent-logger-golang 更新到 v1.2.1 #27474

贡献

  • 更新 armhf ubuntu-trusty 的构建标签 #27327
  • 将 AppArmor 添加到 armhf 的 runc buildtags #27421

1.12.2 (2016-10-11)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

运行

  • 修复由于竞争条件过滤而导致的恐慌docker ps #26049
  • 实现重试逻辑以防止使用 aufs 存储驱动程序时出现“无法删除文件系统”错误 #26536
  • dm.use_deferred_removal如果启用, 则防止 devicemapper 删除设备符号链接#24740
  • 修复以下问题:如果使用无效选项运行命令,CLI 不会返回正确的退出代码 #26777
  • 修复由于运行状况检查中 stdout / stderr 处理中的错误而导致的恐慌 #26507
  • 修复 exec 的子进程处理 #26874
  • 修复 HEALTHCHECK CMD 的执行形式 #26208

联网

  • 修复 armv5 上的守护进程启动恐慌 #24315

集群模式

贡献

  • 更新 debian sysv-init 脚本以dockerd代替docker daemon #25869
  • 提高在 MacOS Sierra 上运行 docker 客户端时的稳定性 #26875
  • 修复 Debian Stretch 上的安装 #27184

Windows

  • 修复在 ConEmu 中运行 docker 客户端时箭头导航不起作用的问题 #25578

1.12.1 (2016-08-18)

重要提示:Docker 1.12 附带了更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

客户

  • 在#25512中添加Joined at信息node inspect --pretty
  • 修复#25454上的崩溃问题service inspect
  • 修复无法service update --env-add按预期工作的 问题#25427
  • 修复无法service update --publish-add按预期工作的 问题#25428
  • 删除service update --network-addservice update --network-rm标记,因为此功能尚未在 1.12 中实现,但在 1.12.0 中无意中添加到客户端 #25646

贡献

  • Debian Jessie、Ubuntu Trusty 和 Raspbian Jessie 的官方 ARM 安装 #24815 #25591
  • 为每个发行版/版本添加 selinux 策略,修复阻止在 Fedora 24 和 Oracle Linux 上成功安装的问题 #25334 #25593

联网

插件(实验性)

  • 让守护进程事件监听插件生命周期事件 #24760
  • 在启用插件之前检查插件状态 #25033
  • 从文件系统中删除插件根plugin rm #25187
  • 安装多个插件时防止死锁 #25384

运行

  • 屏蔽守护进程日志中的连接令牌 #25346
  • 修复docker ps --filter导致结果不再按创建时间排序的问题 #25387
  • 修复各种崩溃 #25053

安全

  • 添加/proc/timer_list到屏蔽路径列表以防止主机信息泄漏 #25630
  • 允许 systemd 仅运行,--cap-add SYS_ADMIN而不必添加--cap-add DAC_READ_SEARCH或禁用 seccomp 过滤 #25567

一群

体积

  • 守护进程重新启动后保留本地卷选项 #25316
  • 修复卷卸载时未返回挂载 ID 的问题 #25333
  • 修复卷挂载可能无意中创建绑定挂载的问题 #25309
  • docker service create --mount type=bind,...现在可以正确验证源路径是否存在,而不是创建它 #25494

1.12.0 (2016-07-28)

重要提示:Docker 1.12.0 附带更新的 systemd 单元文件,用于基于 rpm 的安装(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)。从旧版本的 docker 升级时,升级过程可能不会自动安装更新版本的单元文件,或者无法启动 docker 服务,如果;

  • systemd 单元文件 ( /usr/lib/systemd/system/docker.service) 包含本地更改,或者
  • 存在 systemd 嵌入式文件,并且包含-H fd://ExecStart指令中

启动docker服务会出现错误:

Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.

或者

no sockets found via socket activation: make sure the service was started by systemd.

要解决这个问题:

  • 备份当前版本的单元文件,并将该文件替换为 docker 1.12 附带的版本
  • Requires=docker.socket从文件中删除该指令/usr/lib/systemd/system/docker.service(如果存在)
  • -H fd://从指令中删除ExecStart(在主单元文件中以及存在的任何嵌入式文件中)。

进行这些更改后,运行sudo systemctl daemon-reloadsudo systemctl restart docker重新加载更改并(重新)启动 docker 守护进程。

重要提示:使用 Docker 1.12,Linux docker 安装现在有两个额外的二进制文件;dockerd, 和docker-proxy。如果您有用于安装 docker 的脚本,请确保相应地更新它们。

建设者

  • 新的HEALTHCHECKDockerfile 指令支持用户定义的健康检查 #23218
  • 新的SHELLDockerfile 指令,用于在 Dockerfile 中使用 shell 形式执行命令时指定默认 shell #22489
  • 添加#escape=Dockerfile 指令以支持 Dockerfile 中特定于平台的文件路径解析 #22268
  • 添加对#23111中评论的支持.dockerignore
  • Dockerfiles 支持 UTF-8 #23372
  • 如果存在 Dockerfile则跳过 UTF-8 BOM 字节#23234.dockerignore
  • Windows:支持ARG匹配 Linux #22508
  • 修复使用禁用桥接网络的守护进程构建时的错误消息 #22932

贡献

  • 为 Centos 7 和 Oracle Linux 7 启用 seccomp #22344
  • 删除 systemd 单元中的 MountFlags 以允许共享挂载传播 #22806

分配

  • 添加--max-concurrent-downloads--max-concurrent-uploads守护进程标志对于网络连接不支持多个下载/上传的情况很有用 #22445
  • 注册表操作现在支持ALL_PROXY环境变量 #22316
  • 在#23377上向用户提供更多信息docker load
  • 始终保存有关推送和拉取图像的注册表摘要元数据 #23996

记录

  • Syslog 日志记录驱动程序现在支持 DGRAM 套接字 #21613
  • 添加--details选项以docker logs同时显示日志标签 #21889
  • 启用系统日志记录器以访问环境和标签 #21724
  • 额外的系统日志格式选项,rfc5424micro允许系统日志时间戳中的微秒分辨率 #21844
  • 创建容器时继承守护进程日志选项 #21153
  • 从日志消息标签中删除docker/前缀并将其替换为,{{.DaemonName}}以便用户可以选择更改前缀 #22384

联网

  • 使用 IPVS 进行基于内置虚拟 IP 的内部和入口负载平衡 #23361
  • 使用入口覆盖网络的路由网格 #23361
  • 使用加密控制平面和数据平面的安全多主机覆盖网络 #23361
  • MacVlan 驱动程序已结束实验 #23524
  • 添加driver过滤器到network ls #22319
  • 添加network过滤器到docker ps --filter #23300
  • --link-local-ip标志添加到create,runnetwork connect来指定容器的链接本地地址 #23415
  • 添加网络标签过滤器支持 #21495
  • 删除了 Swarm 模式下覆盖网络对外部 KV 存储的依赖 #23361
  • 添加容器的短 ID 作为默认网络别名 #21901
  • run选项--dns不再--net=host相互排斥 #22408
  • 修复使用生成的名称重命名容器时的 DNS 问题 #22716
  • 允许network inspect -f {{.Id}}network inspect -f {{.ID}}解决与检查输出不一致的问题 #23226

插件(实验性)

  • 使用, , , , ,子命令 plugin管理插件的新命令#23446installenabledisablerminspectset

远程 API (v1.24) 和客户端

  • 将二进制文件分成两部分:(docker客户端)和dockerd(守护进程) #20639
  • 添加beforesince过滤到docker images --filter #22908
  • 添加--limit选项docker search #23107
  • 添加--filter选项docker search #22369
  • 添加安全选项到docker info输出 #21172 #23520
  • 将不安全的注册表添加到docker info输出 #20410
  • 使用 TLS 用户信息扩展 Docker 授权 #21556
  • devicemapper:通过#21945公开最小精简池可用空间docker info
  • 现在,API 在发生错误时返回 JSON 对象,使其更加一致 #22880
  • 防止docker run -i --restart在退出时挂起 #22777
  • 修复主机名验证上的 API/CLI 差异 #21641
  • stats修复从 HumanSize 到 BytesSize 中大小格式的差异#21773
  • authz:当请求被拒绝时返回禁止退出代码 (403) #22448
  • Windows:修复与 tty 相关的显示问题 #23878

运行

  • 将用户层代理拆分为单独的二进制文件 ( docker-proxy) #23312
  • 添加--live-restore守护进程标志以在守护进程关闭时保持容器运行,并在启动时重新获得控制权 #23213
  • 能够添加 OCI 兼容的运行时(通过--add-runtime守护进程标志)并选择带有--runtimeoncreaterun #22983 的运行时
  • 适用于 Linux 4.0+ 的新overlay2图形驱动程序,支持多个较低目录 #22126
  • 新的加载/保存图像事件 #22137
  • 添加对通过 systemd 重新加载守护进程配置的支持 #22446
  • 添加对 btrfs 的磁盘配额支持 #19651
  • 添加对 zfs 的磁盘配额支持 #21946
  • 添加对#22481 的支持docker run --pid=container:<id>
  • 将默认 seccomp 配置文件与选定的功能对齐 #22554
  • daemon reload当守护进程重新加载其配置时 添加一个事件#22590
  • 在 pprof 分析器中添加trace功能,以二进制形式显示执行跟踪 #22715
  • 添加detach事件 #22898
  • 添加对设置 sysctls 的支持--sysctl #19265
  • 添加--storage-opt标志create并允许在 devicemapper 上 run设置#19367size
  • 添加--oom-score-adjust守护进程标志,其默认值-500使守护进程不太可能在容器之前被杀死 #24516
  • 取消弃用on , , , #22621-c的短别名--cpu-sharesrunbuildcreateupdate
  • 防止在 eCryptfs 挂载上使用 aufs 和覆盖图形驱动程序 #23121
  • 修复 tmpfs 安装顺序问题 #22329
  • 创建的容器不再在docker ps -a -f exited=0 #21947上列出
  • 修复容器卡在“Removal In Progress”状态的问题 #22423
  • 修复在运行/创建时未指定命令时返回 HTTP 500 而不是 400 的错误 #22762
  • 修复--detach-keys未保留与分离键前缀匹配的输入的 错误#22943
  • --privileged现在使用模式 时禁用 SELinux 标签#22993
  • 如果卷安装到容器中,则/etc/hosts不再重新标记 SELinux #22993/etc/resolv.conf/etc/hostname
  • --tmpfs修复有关安装选项的行为 不一致#22438
  • 修复守护进程在启动时挂起的问题 #23148
  • 忽略 SIGPIPE 事件以防止日志重新启动导致 docker 在某些情况下崩溃 #22460
  • 由于错误#20835,容器不会从统计列表中删除
  • 修复on-failure守护程序重新启动时的重新启动策略 #20853
  • stats修复容器使用另一个容器网络时的 问题#21904

集群模式

  • 使用, , , ,子命令 swarm管理集群的新命令#23361 #24823initjoinjoin-tokenleaveupdate
  • 使用, , , ,子命令 service管理集群范围服务的新命令#23361 #25140createinspectupdatermps
  • 使用、、、、、和子命令 node管理节点的新命令# 23361 # 25140acceptpromotedemoteinspectupdatepslsrm
  • (实验性)用于管理和部署多服务应用程序的新命令 stack# 23522 #25140deploy

体积

  • 添加对本地和全局卷范围的支持(类似于网络范围) #22077
  • 允许卷驱动程序提供Status字段 #21006
  • 添加对卷的名称/驱动程序过滤器支持 #21361
  • 挂载/卸载操作现在接收不透明 ID,以允许卷驱动程序区分两个调用者 #21015
  • 修复无法删除角落案例中的卷的问题 #22103
  • Windows:启用主机路径自动创建以匹配 Linux #22094

弃用

  • 环境变量DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASEDOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE已分别 重命名为DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE#22574DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
  • 删除已弃用的syslog-tag, gelf-tag, fluentd-taglog 选项,转而使用更通用的tag选项 #22620
  • 删除在 API 容器启动时传递 HostConfig 的已弃用功能 #22570
  • 删除docker 标签上 已弃用的-f/标志#23090--force
  • 删除已弃用的/containers/<id|name>/copy端点 #22149
  • 删除已弃用的docker ps标志--since--before #22138
  • 弃用#23273的旧 3-args 形式docker import

1.11.2 (2016-05-31)

联网

  • 修复非正常重启期间覆盖网络上的过时端点问题 ( #23015 )
  • docker inspect/ps/port修复( #22997 )可能报告错误端口的问题

运行

  • 修复运行时潜在的恐慌docker build#23032
  • 修复--user参数的解释( #22998
  • 修复阻止正确报告容器统计信息的错误 ( #22955 )
  • 修复守护进程重启后阻止容器重新启动的问题 ( #22947 )
  • 修复在 Ubuntu 16.04 上运行 32 位二进制文​​件时的问题 ( #22922 )
  • 修复图像删除和容器附加时可能出现的死锁 ( #22918 )
  • 修复如果容器依赖于容器化集群存储,则容器在守护进程重新启动后无法启动的问题 ( #22561 )
  • docker ps修复使用 devicemapper 时导致 CentOS 挂起的 问题( #22168#23067
  • docker exec修复使用 devicemapper 时阻止进入容器的 错误( #22168#23067

1.11.1 (2016-04-26)

分配

  • 将 schema2 清单媒体类型修复为 type application/vnd.docker.container.image.v1+json( #21949 )

文档

  • 添加 1.11.0 中引入的更改缺少的 API 文档 ( #22048 )

建设者

  • 在处理结束时附加docker build作为参数传递给隐式命令的标签( #22184LABELDockerfile

联网

  • 修复转发 DNS 查询时可能发生的恐慌 ( #22261 )
  • 修复使用用户定义的网络时操作系统线程可能最终位于不正确的网络命名空间中的问题 ( #22261 )

运行

  • 修复阻止通过配置文件重新加载标签配置的错误 ( #22299 )
  • /var/run修复容器安装会阻止其他容器被删除的 回归( #22256
  • 修复无法同时更新memory-swapmemory值的问题 ( #22255 )
  • 修复 1.11.0 的回归,如果未提供 /auth端点,端点将不会初始化( #22254 )serveraddress
  • 添加取消计划重新启动时缺少的容器临时文件清理功能 ( #22237 )
  • 删除未指定重新启动策略时可怕的错误消息 ( #21993 )
  • 修复通过 json 规范激活插件时发生的恐慌 ( #22191 )
  • 修复重启退避逻辑,以便在容器运行至少 10 秒时正确重置延迟 ( #22125 )
  • 删除容器重新启动取消时的错误消息 ( #22123 )
  • docker修复了之后无法正确清理的问题docker exec( #22121 )
  • 修复服务并发命令时可能发生的恐慌docker stats( #22120 )`
  • 恢复不推荐使用不存在的主机目录自动创建( #22065
  • 隐藏守护进程关闭时的误导性 rpc 错误 ( #22058 )

1.11.0 (2016-04-13)

重要提示:在 Docker 1.11 中,Linux docker 安装现在由4 个二进制文件( dockerdocker-containerd和 )组成。如果您的脚本依赖于 docker 作为单个静态二进制文件,请确保更新它们。与守护进程的交互保持不变,否则其他二进制文件的使用应该是透明的。 Windows docker 安装仍然是单个二进制文件.docker-containerd-shimdocker-runcdocker.exe

建设者

  • 修复 Docker 在处理命令时不会使用正确的 uid/gid 的错误WORKDIR( #21033 )
  • 修复了 userns 的复制操作不会使用正确的 uid/gid 的错误( #20782#21162

客户

  • :不推荐使用安全选项分隔符。=应该使用( #21232
  • pull客户端用户代理现在已传递到、buildpush和操作login的注册表search#21306#21373
  • 允许通过 API 单独设置域名和主机名 ( #20200 )
  • 如果 Docker info 无法检测到内核版本或操作系统,它现在会警告用户 ( #21128 )
  • docker stats --no-stream修复输出可能全为 0 的 问题( #20803 )
  • 修复一些新启动的容器不会出现在正在运行的docker stats命令中的错误( #20792
  • 不再为 linux-cgo 终端启用后处理 ( #20587 )
  • Docker 学习了如何使用 SOCKS 代理( #20366#18373
  • Docker 现在支持外部凭证存储 ( #20107 )
  • docker ps现在支持显示容器内安装的卷列表( #20017
  • docker info现在还报告 Docker 的根目录位置 ( #19986 )
  • Docker 现在禁止使用空用户名登录(空格被修剪)( #19806
  • Docker 事件属性现在按键排序 ( #19761 )
  • docker ps不再显示已停止容器的导出端口( #19483
  • 如果保存/导出命令失败,Docker 现在会自行清理 ( #17849 )
  • Docker load 学习了如何显示进度条( #17329#120078

分配

  • 修复拉取 0 层镜像时发生的恐慌 ( #21222 )
  • 修复使用错误配置的令牌服务推送到注册表时可能发生的错误 ( #21212 )
  • 现在,在进行可信推送时,所有第一级委派角色都会被签名 ( #21046 )
  • 添加了对注册表的 OAuth 支持 ( #20970 )
  • docker login现在使用docker/distribution中的实现来处理令牌 ( #20832
  • docker login将不再提示输入电子邮件( #20565
  • 如果没有可用的基本身份验证凭据,Docker 现在将回退到注册表 V1 ( #20241 )
  • Docker 现在将尝试在网络错误/超时后从中断处恢复层下载 ( #19840 )
  • 修复推送跨存储库时生成的清单 mediaType ( #19509 )
  • 如果启用了内容信任,修复了 docker 在拉取映像时请求额外推送凭据的问题 ( #20382 )

记录

  • 修复日志驱动程序中的竞争( #21311
  • Docker syslog 驱动程序现在在发出日志时使用 RFC-5424 格式 ( #20121 )
  • gelf-compression-typeDocker GELF 日志驱动程序现在允许通过和选项指定压缩算法和级别gelf-compression-level( #19831 )
  • Docker 守护进程学会了通过--raw-logs选项输出未着色的日志 ( #19794 )
  • Windows 平台上的 Docker 现在包含一个名为etwlogs( #19689 )的 ETW(Windows 中的事件跟踪)日志记录驱动程序
  • Journald 日志驱动程序学习了如何处理标签( #19564
  • fluidd 日志驱动程序了解了以下选项:fluentd-addressfluentd-buffer-limitfluentd-retry-waitfluentd-max-retries( fluentd-async-connect# 19439 )
  • Docker 学会了通过新的gcplogs日志记录驱动程序将日志发送到 Google Cloud。 ( #18766 )

杂项

  • 当将链接图像与docker save后续图像一起保存时docker load,将正确恢复其父/子关系( #21385
  • 添加了对为 OpenBSD 构建 Docker cli 的支持 ( #21325 )
  • 现在可以在网络、卷和图像创建时应用标签 ( #21270 )
  • 现在dockremap已创建为系统用户 ( #21266 )
  • 修复一些响应主体泄漏( #21258
  • Docker 现在作为 systemd 的服务运行时,将正确管理其进程 cgroup ( #20633 )
  • docker info现在报告 cgroup KernelMemory 的值,或者如果不支持则发出警告 ( #20863 )
  • docker info现在还报告正在使用的 cgroup 驱动程序 ( #20388 )
  • Docker 完成现在可在 PowerShell 上使用 ( #19894 )
  • dockerinit不再存在( #19490#19851
  • 添加了对在 arm64 上构建 Docker 的支持 ( #19013 )
  • 对在本机 Windows Docker 安装中构建 docker.exe 的实验性支持 ( #18348 )

联网

  • 修复从集群中强制删除节点时出现的恐慌 ( #21671 )
  • 修复在 Swarm 集群中启动容器时出现“创建 vxlan 接口错误”的问题 ( #21671 )
  • docker network inspect现在将报告所有端点,无论它们是否有活动容器( #21160
  • 添加了对 MacVlan 和 IPVlan 网络驱动程序的实验性支持 ( #21122 )
  • 的输出docker network ls现在按网络名称排序( #20383
  • 修复 Docker 允许使用保留名称创建网络的错误default( #19431 )
  • docker network inspect返回网络是否为内部网络 ( #19357 )
  • 创建网络时通过显式选项控制 IPv6 ( docker network create --ipv6)。这EnableIPv6docker network inspect( #17513 )中显示为新字段
  • 支持嵌入式 DNS 服务器中的 AAAA 记录(又名 IPv6 服务发现)( #21396
  • 修复不将 docker 域 IPv6 查询转发到外部服务器 ( #21396 )
  • 来自嵌入式 DNS 服务器的多个 A/AAAA 记录用于 DNS 循环 ( #21019 )
  • 修复不正常的守护进程重启后端点计数不一致的问题 ( #21261 )
  • 将公开端口和端口映射选项的所有权从端点移至沙箱( #21019
  • 修复了主机配置 ipv6.disable=1 时阻止 docker 重新加载的错误 ( #21019 )
  • 添加了内置的 nil IPAM 驱动程序 ( #21019 )
  • 修复了 iptables.Exists() 逻辑中的错误 #21019
  • 修复了使用覆盖网络时的 Veth 接口泄漏 ( #21019 )
  • 修复了关闭期间删除网络后阻止 docker 重新加载的错误 ( #20214 )
  • 确保在 firewalld 重新加载时重新创建 iptables 链 ( #20419 )
  • 允许在配置重新加载期间传递全局数据存储( #20419
  • 对于匿名容器,使用 IP 到名称映射的别名,即:DNS PTR 记录 ( #21019 )
  • 修复从 /etc/hosts 文件中删除条目时出现的恐慌 ( #21019 )
  • 从容器网络命名空间获取转发的 DNS 查询 ( #21019 )
  • 修复以在守护程序重新加载时保留桥接网络的网络内部模式配置([#21780]( https://github.com/docker/docker/pull/21780))
  • 修复以在守护进程重新加载时保留 IPAM 驱动程序选项配置 ([#21914] ( https://github.com/docker/docker/pull/21914 ))

插件

  • 修复每次枚举插件时都会发生的文件描述符泄漏( #20686
  • 修复 Authz 插件在面对大量数据时会损坏负载主体的问题 ( #20602 )

运行

  • 修复容器使用无效参数启动后进行清理时可能发生的恐慌 ( #21716 )
  • 修复赛事计时器提前停止的问题 ( #21692 )
  • 修复图层存储中的竞争条件,可能会损坏地图并导致进程崩溃 ( #21677 )
  • 取消弃用自动创建挂载主机目录。此功能在 ( #21666 ) Docker 1.9中被标记为已弃用 ,但被认为是向后不兼容的更改太多,因此决定保留该功能。
  • 现在,容器可以在userns启用时共享 NET 和 IPC 命名空间 ( #21383 )
  • docker inspect <image-id>现在将公开 rootfs 层 ( #21370 )
  • Docker Windows 获得了最小top实现 ( #21354 )
  • Docker 学会了当容器由于其状况而无法启动时报告错误的 exe ( #21345 )
  • udev sync如果不可用, 带有设备映射器的 Docker 现在将拒绝运行( #21097 )
  • 修复 Docker 在配置重新加载时不会验证配置文件的错误 ( #21089 )
  • 修复如果初始启动失败则附加时可能发生的挂起 ( #21048 )
  • 修复守护程序配置文件中的注册表服务选项未正确考虑的问题 ( #21045 )
  • 修复执行和调整大小操作之间的竞争 ( #21022 )
  • 修复过滤 Docker 事件时未正确考虑纳秒的问题 ( #21013 )
  • 修复传递 64 字节 id 时 Docker 命令的处理( #21002
  • 204现在,当成功删除网络时, Docker 将返回一个(即 http.StatusNoContent)代码 ( #20977 )
  • 修复了一个错误,如果要杀死的进程已经自行退出,守护进程将无限期等待( #20967
  • devmapper 驱动程序了解了该dm.min_free_space选项。如果映射的设备可用空间达到传递的值,将禁止创建新设备。 ( #20786 )
  • Docker 现在可以阻止容器中的进程通过标志获得新权限--security-opt=no-new-privileges( #20727 )
  • 使用该选项启动容器--device现在将正确解析符号链接( #20684
  • 修复 docker 配置重新加载以仅更改给定配置文件中存在的值 ( #20604 )
  • --hostnameDocker 现在允许通过标志设置容器主机名--net=host#20177
  • --userns-remap如果指定了 两者--privileged和新标志,Docker 现在允许在运行时执行特权容器( #20111 )--userns=host
  • 修复 Docker 在崩溃后重新启动时无法正确清理旧容器的问题 ( #19679 )
  • 如果 Docker 无法识别配置文件中的配置密钥,Docker 现在会出错( #19517
  • 修复守护进程启动时的容器加载,当它们依赖于容器内运行的插件时( #19500
  • docker update学习了如何更改容器重启策略 ( #19116 )
  • docker inspectState现在还以人类可读的方式返回包含容器状态的新字段(即createdrestartingrunningpausedexited之一dead)( #18966 )
  • Docker 学会了通过标志来限制容器内活动 pid(即进程)的数量pids-limit。注意:这需要CGROUP_PIDS=y在内核配置中。 ( #18697 )
  • docker load现在有一个--quiet选项可以抑制负载输出( #20078
  • 修复 IPv6 对等点邻居发现中的错误 ( #20842 )
  • 修复清理期间容器使用无效选项启动时出现的恐慌 ( #21802 )
  • 修复终端关闭时无法停止容器的情况 ( #21840 )

安全

  • 具有 selinux 类型的对象pcp_pmcd_t被授予管理访问权限/var/lib/docker(/.*)?( #21370 )
  • restart_syscall, copy_file_range,mlock2加入默认 seccomp 配置文件中允许的调用列表( #21117#21262
  • sendrecv并被x32添加到默认 seccomp 配置文件中允许的系统调用和 arch 列表中 ( #19432 )
  • Docker Content Trust 现在请求服务器执行快照签名 ( #21046 )
  • 对使用 YubiKeys 进行内容信任签名的支持已不再是实验性的 ( #21591 )

  • 的输出docker volume ls现在按卷名称排序( #20389
  • 本地卷现在可以接受类似于 unixmount工具的选项 ( #20262 )
  • 修复单字母目录名无法用作卷源的问题 ( #21106 )
  • docker run -v现在接受一个新的标志nocopy。这告诉运行时不要将容器路径内容复制到卷中(这是默认行为)( #21223

1.10.3 (2016-03-10)

运行

  • 修复 Docker 客户端退出并出现“无法识别的输入标头”错误 #20706
  • 如果 Exec 同时使用AttachStdin和启动,则修复 Docker 退出问题Detach #20647

分配

  • 修复将共享同一层的多个图像并行推送到同一存储库时发生的崩溃 #20831
  • 修复将图像推送到使用错误配置的令牌服务的注册表时出现的恐慌 #21030

插件系统

  • 修复启用 SELinux 时阻止卷插件启动的问题 #20834
  • 如果卷插件为 Get 请求返回空响应,则防止 Docker 退出 #20682
  • 修复插件系统在插件出现错误时泄漏文件描述符的问题 #20680

安全

  • 修复 linux32 模拟在 docker 构建期间失败的问题 #20672 这是由于personality系统调用被默认的 seccomp 配置文件阻止。
  • 修复 Oracle XE 10g 无法在容器中启动的问题 #20981 这是因为ipc系统调用被默认的 seccomp 配置文件阻止。
  • 修复用户命名空间在 Linux From Scratch 上不起作用 #20685
  • subuid修复如果启用了用户且或subgid文件包含注释则 阻止守护进程启动的问题#20725

1.10.2 (2016-02-22)

运行

  • 防止 systemd 在重新加载配置时删除容器的 cgroup #20518
  • --read-only修复 SELinux 问题,挂载时忽略/dev/mqueue #20333
  • docker cp修复使用 userns 时 使用的 chown 权限#20446
  • 修复所有布尔值默认为true #20471 的配置加载问题
  • 使用#20522修复偶尔出现的恐慌docker logs -f

分配

  • 如果删除失败,则保留图层引用以避免严重不一致的状态 #20513
  • 取消迁移时优雅地处理极端情况 #20372
  • 修复压缩数据上的 docker 导入 #20367
  • 修复迁移过程中 tar-split 文件损坏,导致 docker push 和 docker save 失败 #20458

联网

  • 如果嵌入式 DNS 发送垃圾,则修复守护进程崩溃 #20510

  • 修复具有相同名称的多个卷引用的问题 #20381

安全

  • 修复潜在的缓存损坏和委托冲突问题 #20523

1.10.1 (2016-02-11)

运行

  • 不要在迁移硬故障时停止守护进程 #20156
  • 修复迁移到内容可寻址图像的各种问题 #20058
  • 修复 ZFS 用户命名空间的权限错误 #20045
  • 不要将 /dev/mqueue 从主机泄漏到所有容器,保持容器特定 #19876 #20133
  • 修复在不提供标志 docker ps --filter before=...的情况下不显示已停止的容器#20135-a

安全

  • 修复阻止 docker 事件与授权插件正常工作的问题 #20002

分配

  • 添加额外的验证并防止将无效数据上传到注册表 #20164
  • 修复回归防止图像引用主机名中出现大写字符 #20175

联网

  • 在存在防火墙的情况下修复用户定义网络的嵌入式 DNS #20060
  • 修复关闭期间删除网络导致 Docker 无法运行的问题 #20181 #20235
  • 嵌入式 DNS 现在能够返回压缩结果 #20181
  • 修复端口映射问题userland-proxy=false #20181

记录

  • 修复 tcp+tls 协议被拒绝的错误 #20109

  • 修复较旧的卷驱动程序无法接收卷选项的问题 #19983

杂项

  • 从 Docker systemd 服务中删除 TasksMax #20167

1.10.0 (2016-02-04)

重要提示:Docker 1.10 使用新的内容可寻址存储来存储图像和图层。首次运行 docker 时会执行迁移,并且可能会花费大量时间,具体取决于存在的映像数量。请参阅 wiki 上的此页面了解更多信息: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration 我们还发布了一个很酷的迁移实用程序,使您能够执行迁移更新之前以减少停机时间。 Engine 1.10 迁移器可以在 Docker Hub 上找到: https://hub.docker.com/r/docker/v1.10-migrator/

运行

  • 允许更新正在运行的容器的资源限制的新docker update命令 #15078
  • 添加--tmpfs标志以docker run在容器中创建 tmpfs 挂载 #13587
  • 向命令 添加--format标志#17692docker images
  • 允许在文件中设置守护程序配置并使用SIGHUP信号 热重载它#18587
  • 更新了 docker events 以包含更多元数据和事件类型 #18888 此更改在 API 中向后兼容,但在 CLI 中不向后兼容。
  • 添加--blkio-weight-device标志到docker run #13959
  • 添加--device-read-bps--device-write-bps标记到docker run #14466
  • 添加--device-read-iops--device-write-iops标记到docker run #15879
  • 添加--oom-score-adj标志到docker run #16277
  • --detach-keys向 、 和 命令添加标志attachrun覆盖与容器分离的默认键序列 start# 15666exec
  • 添加--shm-size标志run,createbuild设置/dev/shm #16168的大小
  • 在#19249中显示正在运行、已停止和已暂停的容器的数量docker info
  • 显示#17478中的OSTypeArchitecturedocker info
  • 添加--cgroup-parent标志daemon以设置所有容器的 cgroup 父级 #19062
  • -L向 docker cp 添加标志以跟踪符号链接#16613
  • #17908 的status=dead过滤器docker ps
  • 更改docker run退出代码以区分运行时错误和应用程序错误 #14012
  • 增强docker events --since--until支持纳秒和时区 #17495
  • 添加--all/-a标记以stats包含正在运行和已停止的容器 #16742
  • 将默认 cgroup-driver 更改为cgroupfs #17704
  • 使用#17115标记图像时发出“标记”事件build -t
  • 启动守护进程时,尽最大努力实现链接容器的启动顺序 #18208
  • 添加在#15780上添加多个标签的功能build
  • 允许OPTIONS针对任何 url 的请求,从而解决 CORS 问题 #19569
  • 修复--quiet标志docker build以使其真正安静 #17428
  • 修复docker images --filter dangling=false现在显示所有非悬挂图像 #19326
  • 修复导致自动重启在重新启动时关闭的竞争条件 #17629
  • 识别 GPFS 文件系统 #19216
  • 修复阻止启动容器的隐秘错误 #19751
  • exec容器重启期间 禁止#19722
  • devicemapper:增加--storage-opt dm.basesize现在会增加守护程序重新启动时的基本设备大小 #19123

安全

  • 添加--userns-remap标志以daemon支持用户命名空间(之前处于实验阶段) #19187
  • 在#17989中添加对自定义 seccomp 配置文件的支持--security-opt
  • 添加默认的 seccomp 配置文件 #18780
  • 添加--authorization-plugin标志以daemon自定义 ACL #15365
  • Docker Content Trust 现在支持读取和写入用户委托的功能 #18887 这是一项可选的选择加入功能,需要显式使用 Notary 命令行实用程序才能启用。如果启用了内容信任,在特定存储库中启用委派支持将破坏 Docker 1.9 和 1.8 从该存储库中提取内容的能力。
  • 使用 BTRFS 存储驱动程序时允许 SELinux 在容器中运行 #16452

分配

  • 修复 docker 可能无限期挂起等待不存在的进程拉取映像的问题 #19743

联网

  • 使用基于 DNS 的发现而不是/etc/hosts #19198
  • 支持使用--net-aliasonrun--aliason network connect #19242 的网络范围别名
  • 添加--ip--ip6支持网络中容器的自定义 IP 地址 run# 19001network connect
  • 添加--ipam-opt用于network create传递自定义 IPAM 选项 #17316
  • 添加--internal标志以network create限制外部访问网络 #19276
  • 添加kv.path选项--cluster-store-opt #19167
  • 添加discovery.heartbeatdiscovery.ttl选项来--cluster-store-opt配置发现 TTL 和心跳计时器 #18204
  • 添加--format标志到network inspect #17481
  • 添加--linknetwork connect提供容器本地别名 #19229
  • 支持与远程 IPAM 插件进行功能交换 #18775
  • 添加--forcenetwork disconnect强制容器与网络断开连接 #19317
  • 使用所有引擎支持的内核的内置覆盖驱动程序支持多主机网络:3.10+ #18775
  • --link现在支持docker run用户定义网络中的容器 #19229
  • 增强docker network rm以允许删除多个网络 #17489
  • 在#17615中包含容器名称network inspect
  • 在#17316中包含为用户定义网络自动生成的子网network inspect
  • 添加--filter标志以network ls隐藏预定义网络 #17782
  • 添加对已停止容器的网络连接/断开连接的支持 #18906
  • 将网络 ID 添加到容器检查 #19323
  • 修复 Docker 无法以两个或多个默认路由启动的 MTU 问题 #18108
  • 修复容器的重复 IP 地址 #18106
  • 修复有时阻止 docker 创建桥接网络的问题 #19338
  • 使用#19573时不要替换 127.0.0.1 名称服务器--net=host

记录

  • Splunk 的新日志记录驱动程序 #16488
  • 添加对 TCP+TLS 上的系统日志的支持 #18998
  • 增强docker logs --since--until支持纳秒和时间 #17495
  • 增强 AWS 日志以自动检测区域 #16640

  • 添加对设置卷的安装传播模式的支持 #17034
  • 添加ls端点inspect到卷插件 API #16534 现有插件需要利用这些新 API 来满足用户的期望为此,请使用新的 MIME 类型application/vnd.docker.plugins.v1.2+json #19549
  • 修复数据未复制到命名卷的问题 #19175
  • 修复阻止卷驱动程序容器化的问题 #19500
  • 修复docker volumes ls --dangling=false现在显示所有非悬空卷 #19671
  • 删除容器时不要删除命名卷 #19568
  • 允许外部卷驱动程序托管匿名卷 #19190

建设者

  • **添加对通配符.dockerignore多级目录的 支持#17090
  • 修复 Dockerfiles 中 UTF-8 字符的处理 #17055
  • 修复从 STDIN 读取时的权限问题 #19283

客户

  • DOCKER_API_VERSION添加对通过环境变量 覆盖要使用的 API 版本的支持#15964
  • 修复阻止 Windows 客户端登录 Docker Hub 的错误 #19891

杂项

  • systemd:在 systemd 服务文件中除了 LimitNPROC 之外还设置 TasksMax #19391

弃用

  • 删除 LXC 支持。 LXC 驱动程序在 Docker 1.8 中已弃用,现已删除 #17700
  • 删除--exec-driver守护进程标志,因为它不再使用 #17700
  • 删除旧的已弃用的单破折号长 CLI 标志(例如-rm; 使用--rm#17724
  • 在 API 容器启动时弃用 HostConfig #17799
  • 弃用新停产的 Linux 发行版的 docker 软件包:Fedora 21 和 Ubuntu 15.04 (Vivid) #18794#18809
  • 弃用-fdocker 标签的标志 #18350

1.9.1 (2015-11-21)

运行

  • 如果无法恢复映像,请勿阻止守护进程启动 (#17695)
  • 强制 IPC 安装在守护程序关闭/初始化时卸载 (#17539)
  • 将 IPC 卸载错误转变为警告 (#17554)
  • 修复docker stats性能回归 (#17638)
  • docker logs澄清if上的神秘错误消息--log-driver=none(#17767)
  • 修复很少出现的恐慌(#17639、#17634、#17703)
  • 修复带有点前缀的文件的 opq 白化问题 (#17819)
  • devicemapper:出于性能原因,尝试默认使用 xfs 而不是 ext4(#17903、#17918)
  • devicemapper:修复 docker 信息中显示的文件系统 (#17974)
  • selinux:仅在用户请求时才使用z选项重新标记(#17450,#17834)
  • 规范化名称时不要进行网络调用 (#18014)

客户

  • 修复docker loginWindows 上的问题 (#17738)
  • 修复docker inspect未连接到守护进程时的输出错误 (#17715)
  • 修复docker inspect -f {{.HostConfig.Dns}} somecontainer(#17680)

建设者

  • 修复 ADD/COPY 中符号链接行为的回归 (#17710)

联网

  • 允许传递网络 ID 作为参数--net(#17558)
  • 修复与主机的连接并防止与host网络的主机断开连接 (#17476)
  • 修复--fixed-cidr当网关 ip 属于 ip-range 且 ip-range 不是网络中的第一个块时的问题 (#17853)
  • 从默认网络上的地址恢复确定性IPv6生成(#17890)MACbridge
  • 仅允许在 docker run 上创建的端点进行端口映射 (#17858)
  • 修复了可能是陈旧 sbox 的端点删除问题 (#18102)

分配

  • 当磁盘上的 v1Compatibility 文件不一致时,修正 v2 推送中的父链 (#18047)

1.9.0 (2015-11-03)

运行

  • docker stats现在返回块 IO 指标 (#15005)
  • docker stats现在详细说明每个接口的网络统计信息 (#15786)
  • ancestor=<image>过滤器添加到docker ps --filter标志以根据祖先图像过滤容器 (#14570)
  • 添加label=<somelabel>过滤器docker ps --filter以根据标签过滤容器 (#16530)
  • 添加--kernel-memory标志docker run(#14006)
  • 添加--message标志以docker import允许指定可选消息 (#15711)
  • 添加--privileged标志docker exec(#14113)
  • 添加--stop-signal标志以docker run允许替换容器进程停止信号 (#15307)
  • 添加新的unless-stopped重启策略 (#15348)
  • 检查图像现在返回标签 (#13185)
  • 添加容器大小信息docker inspect(#15796)
  • 添加RepoTagsRepoDigests字段到/images/{name:.*}/json(#17275)
  • /container/ps从 API 中删除已弃用的端点 (#15972)
  • 发送并记录正确的 HTTP 代码/exec/<name>/start(#16250)
  • 在共享 IPC 命名空间的容器之间共享 shm 和 mqueue (#15862)
  • 现在,事件流在--oom-kill-disable设置时显示 OOM 状态 (#16235)
  • 如果使用选项绑定安装,请确保特殊网络文件(/etc/hosts 等)是只读的ro(#14965)
  • 提高rmi性能 (#16890)
  • 不要更新默认桥接网络的 /etc/hosts,链接除外 (#17325)
  • 修复重复容器名称的冲突 (#17389)
  • docker inspect修复(#17284)中模板执行不正确的问题
  • 弃用docker run 中的-c短标志变体--cpu-shares(#16271)

客户

  • 允许docker import从本地文件导入 (#11907)

建设者

  • 添加STOPSIGNALDockerfile 指令,允许为容器进程设置不同的停止信号 (#15307)
  • 添加ARGDockerfile 指令和--build-arg标志docker build ,允许添加构建时环境变量 (#15182)
  • 提高缓存未命中性能 (#16890)

贮存

  • devicemapper:实现延迟删除功能 (#16381)

联网

  • docker network退出实验并成为标准版本的一部分 (#16645)
  • 新的网络顶级概念,以及相关的子命令和 API (#16645) 警告:该 API 与实验 API 不同
  • 支持多个隔离/微分段网络 (#16645)
  • 使用基于 VXLAN 的覆盖驱动程序的内置多主机网络 (#14071)
  • 支持第三方网络插件 (#13424)
  • 能够将容器动态连接到多个网络 (#16645)
  • 通过可插入 IPAM 驱动程序支持用户定义的 IP 地址管理 (#16910)
  • 添加守护进程标志--cluster-store--cluster-advertise用于内置节点发现 (#16229)
  • 添加--cluster-store-opt用于设置 TLS 设置 (#16644)
  • 添加--dns-opt到守护进程 (#16031)
  • 弃用NetworkSettingsAPI v1.21 中的以下容器字段:EndpointIDGatewayGlobalIPv6AddressGlobalIPv6PrefixLenIPAddressIPPrefixLenIPv6GatewayMacAddress这些现在是特定于bridge网络的。用于NetworkSettings.Networks检查每个网络容器的网络设置。

  • 新的顶级volume子命令和 API (#14242)
  • 将 API 卷驱动程序设置移至特定于主机的配置 (#15798)
  • 如果卷名称不唯一,则打印错误消息 (#16009)
  • 确保从 Dockerfile 创建的卷始终使用本地卷驱动程序 (#15507)
  • 弃用为绑定挂载自动创建缺失的主机路径 (#16349)

记录

  • awslogs为 Amazon CloudWatch添加日志记录驱动程序 (#15495)
  • 添加通用tag日志选项以允许自定义传递给驱动程序的容器/图像信息 (#15384)
  • 实现docker logs日志驱动程序的端点 (#13707)
  • 弃用特定于驱动程序的日志标签 (#15384)

分配

  • docker search现在可以使用部分名称 (#16509)
  • 推送优化:避免缓冲到文件 (#15493)
  • 守护进程将显示已被另一个客户端拉取的图像的进度 (#15489)
  • 仅请求当前正在执行的操作所需的权限 (#)
  • 将信任密钥(以及相应的环境变量)从offlineto roottaggingto重命名repository(#16894)
  • 弃用信任密钥环境变量 DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASEDOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE(#16894)

安全

  • 将 SELinux 配置文件添加到 rpm 包 (#15832)
  • 修复 deb 包中提供的 AppArmor 配置文件的各种问题 (#14609)
  • 添加阻止写入 /proc 的 AppArmor 策略 (#15571)

1.8.3 (2015-10-12)

分配

  • 修复层 ID 导致本地图中毒 (CVE-2014-8178)
  • 修复清单验证和解析逻辑错误,允许绕过摘要式验证 (CVE-2014-8179)
  • 添加--disable-legacy-registry以防止守护程序使用 v1 注册表

1.8.2 (2015-09-10)

分配

  • 修复了处理 GNU LongLink 和 LongName 条目的罕见边缘情况。
  • 修复 docker pull 上的 ^C。
  • 修复客户端断开连接时的 docker pull 问题。
  • 修复了当记录器配置不正确时导致守护进程出现恐慌的问题。
  • 修复从注册表 V2 拉取镜像的 goroutine 泄漏。

运行

  • 修复了在 docker 容器内运行的 docker 守护进程安装 cgroup 的错误。
  • 正确初始化日志配置。

客户:

  • 当存在默认格式时,正确处理-q标志。docker ps

联网

  • 使用 netlink 修复几个极端情况。

贡献

  • 修复了 bash 完成的几个问题。

1.8.1 (2015-08-12)

分配

  • 修复推送多个标签会导致图像无效的错误

1.8.0 (2015-08-11)

分配

  • 可信拉取、推送和构建,默认禁用
  • 使焦油层在注册表之间具有确定性
  • 不允许删除正在运行的容器的镜像
  • 检查要加载的标签名称是否是有效的摘要
  • 允许一个字符存储库名称
  • 为无效标签名称添加更准确的错误描述
  • 使构建缓存忽略 mtime

克里

  • 添加对 DOCKER_CONFIG/--config 的支持以指定配置文件目录
  • 为 docker Inspect 命令添加 --type 标志
  • docker ps添加格式化选项--format
  • 替换docker -d为新的子命令docker daemon
  • Zsh 完成更新和改进
  • 添加一些缺失的事件来完成 bash
  • 支持带有基本路径的守护程序 URLdocker -H
  • 验证 status= 过滤器到 docker ps
  • 当容器位于 docker ps 中的 --net=host 时显示
  • 扩展 dockerspect 以导出与图形驱动程序相关的图像元数据
  • 恢复 --default-gateway{,-v6} 守护进程选项
  • 在 docker ps 中添加缺少的未发布端口
  • 允许持续时间字符串为docker events--since/--until
  • 公开更多坐骑信息docker inspect

运行

  • 添加新的 Fluentd 日志记录驱动程序
  • 允许docker import从本地文件加载
  • 通过 UDP 为 GELF 添加日志记录驱动程序
  • 允许将文件从主机复制到容器docker cp
  • 将卷驱动程序从实验阶段提升为大师阶段
  • 将翻转选项添加到 json-file 日志驱动程序和 --log-driver-opts 标志
  • 添加内存交换调整选项
  • 特权时删除 cgroup 只读标志
  • 将只读容器的 /proc、/sys 和 /dev 设为只读
  • 默认添加cgroup绑定挂载
  • Overlay:导出容器和图像的元数据docker inspect
  • Devicemapper:外部设备激活
  • Devicemapper:启动时比较基本设备的 uuid
  • 从注册表密码套件列表中删除 RC4
  • 添加系统日志设施选项
  • LXC execdriver 与最新 LXC 版本的兼容性
  • 将 LXC execriver 标记为已弃用(将在迁移到 runc 时删除)

插件

  • 单独的插件插座和规格位置
  • 允许与插件的 TLS 连接

Bug修复

  • 将缺少的“名称”字段添加到 /containers/json API 输出
  • 使docker rmi悬挂图像在拉动时安全
  • Devicemapper:将默认基本大小更改为 100G
  • Go Scheduler 与sync.Mutex 和 gcc 的问题
  • 修复搜索 API 端点因 AuthConfig 为空而出现恐慌的问题
  • 正确设置图像规范名称
  • 仅当使用 lxc 驱动程序时才检查 dockerinit
  • 修复 nproc 的 ulimit 使用
  • 如果指定了 -i,--interactive,则始终附加 STDIN
  • 保存容器状态失败时显示错误消息
  • 修复了 --bridge=none 被视为禁用网络的错误假设
  • 检查主机配置中的无效端口规范
  • 修复 --net=host 模式下端点离开失败的问题
  • 如果容器未运行,修复 stats API 中的 goroutine 泄漏
  • 在读取之前检查 apparmor 文件
  • 修复 DOCKER_TLS_VERIFY 被忽略的问题
  • 启动时将 umask 设置为默认值
  • 更正暂停消息并取消暂停未运行的容器
  • 调整容器创建中不允许的 CpuShares
  • ZFS:正确应用 selinux 上下文
  • 显示空字符串而不是当 IP opt 为零时
  • docker kill当容器未运行时返回错误
  • 修复 COPY/ADD Quoted/json 表单
  • 修复日志 -f 上没有输出的 goroutine 泄漏
  • 消除无效主机端口上 nat 包中的恐慌
  • 修复 Fedora 22 中的容器链接
  • 修复使用分配范围之外的默认网关导致的错误
  • 使用 RFC3339Nano 模板格式化检查命令中的时间
  • 使注册表客户端接受 2xx 和 3xx http 状态响应作为成功
  • 修复了导致守护程序崩溃且某些层下载按特定顺序失败的竞争问题。
  • 修复 docker ps 格式无效时的错误。
  • 删除多余的 ip 转发检查。
  • 修复尝试将映像推送到存储库镜像的问题。
  • 修复出现初始化问题时清理网络入口点时出现的错误。

1.7.1 (2015-07-14)

运行

  • 修复默认用户生成执行进程docker exec
  • --bridge=none配置网桥
  • 正确发布网络统计数据
  • 使用静态二进制文件修复隐式设备映射器选择
  • 修复间歇性挂起的套接字连接
  • 修复 CentOS/RHEL 6.6 上的桥接接口创建
  • 修复添加到 resolv.conf 的本地 dns 查找
  • 修复复制命令安装卷
  • 修复使用 --volumes-from 挂载的卷中的读/写权限

远程API

  • 修复命令和入口点的解组
  • 设置支持的最低客户端版本限制
  • 验证端口规范
  • 连接/重新连接失败时返回正确的错误

分配

  • 修复拉取私有镜像的问题
  • 修复注册表 V2 和 V1 之间的回退

1.7.0 (2015-06-16)

运行

  • 实验功能:支持进程外卷插件
  • --userland-proxy=false可以使用守护进程的标志禁用用户层代理以支持发夹 NAT
  • exec命令支持-u|--user指定新进程所有者的标志
  • 可以使用--default-gateway--default-gateway-v6标志在守护进程范围内指定容器的默认网关
  • CPU CFS(Completely Fair Scheduler)配额可以在docker run使用中设置--cpu-quota
  • 容器块IO可以通过docker run使用来控制--blkio-weight
  • ZFS 支持
  • docker logs命令支持一个--since参数
  • UTS命名空间可以与主机共享docker run --uts=host

质量

  • 作为 libnetwork 工作的一部分,网络堆栈被完全重写
  • 发动机内部重构
  • Volumes 代码被完全重写以支持插件工作
  • 向守护进程发送 SIGUSR1 将转储所有 goroutine 堆栈而不退出

建造

  • 环境变量支持 ${variable:-value} 和 ${variable:+value} 语法
  • 支持资源管理标志--cgroup-parent,,,,,--cpu-period--cpu-quota--cpuset-cpus--cpuset-mems
  • git 上下文随分支和目录而变化
  • .dockerignore 文件支持排除规则

分配

  • 客户端支持 v2 镜像 支持官方注册中心

Bug修复

  • 现已支持 Firewalld,并将在可用时自动使用
  • 递归地安装--device

1.6.2 (2015-05-13)

运行

  • 恢复禁止安装到 /sys 的更改

1.6.1 (2015-05-07)

安全

  • 修复读/写 /proc 路径 (CVE-2015-3630)
  • 禁止 VOLUME /proc 和 VOLUME / (CVE-2015-3631)
  • 修复文件描述符 1 的打开问题 (CVE-2015-3627)
  • 修复容器重生时的符号链接遍历,允许本地权限升级 (CVE-2015-3629)
  • 禁止挂载/sys

运行

  • 更新 AppArmor 策略以不允许安装

1.6.0 (2015-04-07)

建设者

  • 从图像 ID 构建图像
  • 构建具有资源限制的容器,即docker build --cpu-shares=100 --memory=1024m...
  • commit --change在提交映像时应用指定的 Dockerfile 指令
  • import --change在导入镜像时应用指定的 Dockerfile 指令
  • 使用 CTRL-C 取消时,构建不再在后台继续

客户

  • Windows 支持

运行

  • 容器和图像标签
  • --cgroup-parent用于指定父 cgroup 将容器 cgroup 放置在其中
  • 记录驱动程序、json-filesyslognone
  • 通过ID拉取镜像
  • --ulimit在容器上设置 ulimit
  • --default-ulimit守护进程上的选项适用于所有创建的容器(并被--ulimit运行时覆盖)

1.5.0 (2015-02-10)

建设者

  • 可以使用标志docker build指定用于给定的 Dockerfile-f
  • Dockerfile 和 .dockerignore 文件本身可以作为 .dockerignore 文件的一部分被排除,从而防止对这些文件的修改使 ADD 或 COPY 指令缓存失效
  • ADD 和 COPY 指令接受相对路径
  • DockerfileFROM scratch指令现在被解释为无基说明符
  • 提高暴露大量端口时的性能

黑客

  • 仅允许 Windows 客户端集成测试
  • 将针对 Docker 守护进程的 docker-py 集成测试作为我们测试套件的一部分

包装

  • 支持新版本的注册表HTTP API
  • 加快docker push大多数现有图层的图像速度
  • 修复了通过代理联系私人注册表的问题

远程API

  • 新端点将流式传输实时容器资源指标,并可以使用以下docker stats命令进行访问
  • 可以使用新rename端点和关联docker rename命令重命名容器
  • 容器端点显示在此容器中运行的命令inspect的IDexec
  • 容器inspect端点显示 Docker 自动重启容器的次数
  • 新类型的事件可以通过events端点进行流式传输:“OOM”(容器因内存不足而死亡)、“exec_create”和“exec_start”
  • 修复了返回的字符串字段,其中包含数字字符,错误地省略了周围的双引号

运行

  • Docker 守护进程具有完整的 IPv6 支持
  • docker run命令可以使用该--pid=host标志来使用主机 PID 命名空间,这使得可以使用容器化调试工具来调试主机进程
  • docker run命令可以使用该--read-only标志将容器的根文件系统挂载为只读,它可以与卷结合使用,以强制容器的进程仅写入将被持久化的位置
  • docker run使用该--memory-swap标志可以限制容器总内存使用量
  • devicemapper 存储驱动程序的主要稳定性改进
  • /etc/resolv.conf与主机系统更好的集成:容器将在重新启动时反映主机文件的更改
  • 与主机系统更好地集成:每个容器的 iptable 规则已移至 DOCKER 链
  • 修复了容器在内存不足时退出以返回无效退出代码的问题

其他

  • 连接到 Docker 守护进程时,客户端会正确考虑 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 环境变量

1.4.1 (2014-12-15)

运行

  • 修复创建后不支持volumes-from和bind挂载的问题

1.4.0 (2014-12-11)

自 1.3.0 以来的显着功能

  • 将 key=value 标签设置为守护进程(显示在 中docker info),并应用新的-label守护进程标志
  • ENV在 Dockerfile 中添加对以下形式的 支持:ENV name=value name2=value2...
  • 新的 Overlayfs 存储驱动程序
  • docker info现在返回一个IDandName字段
  • 按事件名称、容器或图像过滤事件
  • docker cp现在支持从容器卷复制
  • 已修复docker tag,因此--force在覆盖现有图像的标签时它会受到尊重。

1.3.3 (2014-12-11)

安全

  • 修复绝对符号链接处理中的路径遍历漏洞 (CVE-2014-9356)
  • 修复 xz 图像存档的解压缩,防止权限升级 (CVE-2014-9357)
  • 验证映像 ID (CVE-2014-9358)

运行

  • 修复图像档案读取缓慢的问题

客户

  • 修复与标准输入重定向相关的回归
  • docker cp修复目标为当前目录时的回归问题

1.3.2 (2014-11-20)

安全

  • 修复 tar 突破漏洞
  • 提取现在是沙盒 chroot
  • 安全选项不再致力于图像

运行

  • 修复死锁docker ps -f exited=1
  • --volumes-from修复引用启动失败的容器时的错误

登记处

  • --insecure-registry现在接受 CIDR 表示法,例如 10.1.0.0/16
  • IP 在 127.0.0.0/8 范围内的私有注册表不需要该--insecure-registry标志
  • 启用镜像时跳过实验性注册表 v2 API

1.3.1 (2014-10-28)

安全

  • 防止客户端、守护程序和注册表回退到 SSL 协议 < TLS 1.0
  • 通过证书验证与注册表建立安全的 HTTPS 连接,除非--insecure-registry指定,否则没有 HTTP 回退

运行

  • 修复卷无法共享的问题

客户

  • --iptables=false修复不自动设置的问题--ip-masq=false
  • 将 docker run 输出修复为非 TTY 标准输出

建设者

  • 修复$环境变量的转义
  • 修复小写onbuildDockerfile 指令的问题
  • 将环境变量扩展限制为ENV, ADD, COPY, WORKDIR, EXPOSE,VOLUMEUSER

1.3.0 (2014-10-14)

自 1.2.0 以来的显着功能

  • Dockerexec允许您在现有容器内运行其他进程
  • Dockercreate使您能够通过 CLI 创建容器,而无需执行进程
  • --security-opts允许用户自定义容器标签和 apparmor 配置文件的选项
  • Dockerps过滤器
  • 对 COPY/ADD 的通配符支持
  • 将生产 URL 从 get.docker.io 移至 get.docker.com
  • 在有效 CIDR 内的网桥上分配 IP 地址
  • 使用 Drone.io 进行 PR 和 CI 测试
  • 能够设置官方注册表镜像
  • 能够使用 docker 保存多个图像save

1.2.0 (2014-08-20)

运行

  • 使 /etc/hosts /etc/resolv.conf 和 /etc/hostname 在运行时可编辑
  • 使用策略自动重启容器
  • 使用 /var/lib/docker/tmp 存储大型临时文件
  • --cap-add--cap-drop调整你想要的 Linux 功能
  • --device使用容器中的设备

客户

  • docker search关于私人登记处
  • 添加exited过滤器至docker ps --filter
  • docker rm -f现在杀死而不是停止
  • --dns标志中支持 IPv6 地址

代理人

  • 单独进程中的代理实例
  • UDP 代理的小错误修复

1.1.2 (2014-07-23)

运行

  • 修复现有容器的端口分配
  • 修复守护进程重新启动时容器重新启动的问题

包装

  • 修复 Debian 上的 /etc/init.d/docker 问题

1.1.1 (2014-07-09)

建设者

  • 修复 ADD 问题

1.1.0 (2014-07-03)

自 1.0.1 以来的显着功能

  • 添加.dockerignore支持
  • 期间暂停容器docker commit
  • 添加--taildocker logs

建设者

  • 允许 tar 文件作为上下文docker build
  • 修复空格和多行的问题Dockerfiles

运行

  • 整体性能改进
  • 允许/作为来源docker run -v
  • 修复端口分配
  • 修复错误docker save
  • 添加链接信息至docker inspect

客户

  • 改进命令行解析docker commit

远程API

  • start改进和stop端点的状态代码

1.0.1 (2014-06-19)

自 1.0.0 以来的显着功能

  • 增强 LXC 驱动程序的安全性

建设者

  • 修复ONBUILD传递给孙子的指令

运行

  • 修复事件订阅
  • 使用主机网络修复 /etc/hostname 文件
  • 允许-h--net=none
  • 修复热插拔设备的问题--privileged

客户

  • 使用事件修复工件
  • 修复空标志的恐慌
  • 修复docker cpMac OS X 上的问题

各种各样的

  • 修复 Mac OS X 上的编译
  • 修复几场比赛

1.0.0 (2014-06-09)

自 0.12.0 以来的显着功能

  • 生产支持

0.12.0 (2014-06-05)

自 0.11.0 以来的显着功能

  • 40 多项稳定性、性能和可用性方面的改进
  • 新的COPYDockerfile 指令允许将本地文件从上下文复制到容器中,而无需解压(如果该文件是 tar 文件)
  • 从主机继承文件权限ADD
  • 允许使用 cgroup freeze 暂停和取消暂停容器的新pause命令unpause
  • images命令有一个-f/--filter选项来过滤图像列表
  • 添加--force-rm以在构建失败后进行清理
  • 将远程 API 中的 JSON 键标准化为 CamelCase
  • latest如果未指定,从 docker run 中拉取现在会假定标签
  • 增强 Linux 功能和设备节点的安全性

0.11.1 (2014-05-07)

登记处

  • 修复私有注册表的推送和拉取

0.11.0 (2014-05-07)

自 0.10.0 以来的显着功能

  • SELinux 对挂载和进程标签的支持
  • 可以通过主机名访问链接的容器
  • 使用 net--net标志允许高级网络配置,例如主机网络,以便容器可以使用主机的网络接口
  • 将 ping 端点添加到远程 API 以对 docker 守护程序进行运行状况检查
  • 现在可以使用可选的时间戳返回日志
  • Docker 现在可以与支持 SHA-512 的注册表配合使用
  • 支持多个注册表端点以允许注册表镜像

0.10.0 (2014-04-08)

建设者

  • 修复在一行上打印多条消息的问题。修复构建期间损坏的输出。
  • 按照容器根目录内的符号链接获取 ADD 构建说明。
  • 修复 EXPOSE 缓存。

文档

  • 将新选项添加docker ps​​到文档中。
  • 将 的选项添加docker restart到文档中。
  • 更新 --iptables 和 --ip-forward 的守护程序文档和帮助消息。
  • 更新了 apt-cacher-ng 文档示例。
  • 从文档中删除 --mtu 的重复描述。
  • 将缺少的 -t 和 -v 添加docker images到文档中。
  • 将修复添加到 cli 文档。
  • 更新 libcontainer 文档。
  • 更新文档中的图像以删除对 AUFS 和 LXC 的引用。
  • 更新文档中的nodejs_web_app以使用新的epel RPM地址。
  • 修复容器安全性的外部链接。
  • 更新远程 API 文档。
  • 将图像大小添加到历史文档中。
  • 明确绑定到 redis 示例中的所有接口。
  • 记录 1.10 远程 api 中的禁用网络标志。
  • --lxc-conf仅lxc 的文档。
  • 添加厨师使用文档。
  • 添加具有多个 for 的图像示例docker load
  • 解释一下docker run -a文档中的作用。

贡献

  • 将 DOCKER_LOGFILE 的变量添加到 sysvinit 中,并在打开日志文件时使用追加而不是覆盖。
  • 修复 init 脚本 cgroup 安装解决方法,使其与 cgroupfs-mount 更相似,从而正常工作。
  • 从新贵主机集成示例中删除 inotifywait hack,因为不再需要它了。
  • 将 check-config 脚本添加到 contrib。
  • 修复鱼壳完成问题。

黑客

  • 清理“make test”中的“go test”输出,使其更具可读性/可扫描性。
  • 从 hack/make/test 中排除更多“绝对没有经过单元测试的 Go 源代码”目录。
  • 构建时生成 md5 和 sha256 哈希值,并通过 hack/release.sh 上传它们。
  • 包括 Ubuntu PPA 中贡献的完成内容。
  • 添加 cli 集成测试。
  • 对黑客脚本进行调整,使其更简单。

远程API

  • 添加 API 的 TLS 身份验证支持。
  • 将 git clone 从守护进程移至客户端。
  • 修复 docker cp 中的内容类型检测。
  • 将 API 拆分为 2 个 go 包。

运行

  • 支持发夹NAT,无需经过Docker服务器。
  • devicemapper:删除不存在的设备时立即成功。
  • devicemapper:改进 devicemapper 设备的处理(添加每个设备锁、增加睡眠时间并在睡眠时解锁)。
  • devicemapper:将 wait 超时增加到 10 秒。
  • devicemapper:确保我们彻底关闭精简池。
  • devicemapper:传递信息,而不是哈希值到 activateDeviceIfNeeded、deactivateDevice、setInitialized、deleteDevice。
  • devicemapper:避免AB-BA死锁。
  • devicemapper:使关机更好/更快。
  • 改进 mflag 中的 alpha 排序。
  • 删除手动 http cookie 管理,因为正在使用 cookiejar。
  • 在 Darwin 上使用 BSD 原始模式。修复 nano、tmux 等。
  • 添加对客户端的 FreeBSD 支持。
  • 将 auth 包合并到注册表中。
  • 添加 -t on 的弃用警告docker pull
  • 消除错误时的 goroutine 泄漏。
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式。
  • 修复达尔文的附加出口。
  • 改进弃用消息。
  • 重试检索图层元数据最多 5 次docker pull
  • 仅取消共享 execin 的挂载命名空间。
  • 提交时合并现有配置。
  • 禁用守护程序启动超时。
  • 修复问题 #4681:禁用网络时添加环回接口。
  • 添加问题 #4681 的失败测试用例。
  • 向子进程发送 SIGTERM,而不是 SIGKILL。
  • docker info即使不在调试模式下也显示驱动程序和内核版本。
  • 始终为 libcontainer 符号链接 /dev/ptmx。这修复了与控制台相关的问题。
  • 修复因缺少 /etc/apparmor.d 导致的问题。
  • 创建容器失败时,不要留下空的 cidFile。
  • 如果尚未安装 cgroup,则自动安装它们。
  • 使用模拟进行搜索测试。
  • 到处更新为双破折号。
  • 将 .dockerenv 解析移至 lxc 驱动程序。
  • 将容器中的所有绑定安装移动到命名空间内。
  • 不要对容器使用单独的绑定安装。
  • 始终为 libcontainer 符号链接 /dev/ptmx。
  • 不要通过pid杀死其他驱动程序。
  • 将初始日志记录添加到 libcontainer。
  • 按端口排序docker ps
  • 将网络驱动程序移至运行时顶级包中。
  • 将 --no-prune 添加到docker rmi.
  • 添加自退出以来的时间docker ps
  • graphdriver:添加构建标签。
  • 防止分配先前分配的端口并防止改进端口分配。
  • docker ps在.中添加对 --since/--before 的支持
  • 清理集装箱停靠点。
  • 添加对可配置 DNS 搜索域的支持。
  • 添加对相关 WORKDIR 指令的支持。
  • 为 docker save 添加 --output 标志。
  • 删除配置合并中重复的 DNS 条目。
  • 将 cpuset.cpus 添加到 cgroup 和本机驱动程序选项。
  • 删除 docker-ci。
  • 推广 btrfs。 btrfs 不再被视为实验性的。
  • 将 --input 标志添加到docker load.
  • 当现有网桥与 IP 地址不匹配时返回错误。
  • 在解析行延续之前删除注释,以避免将指令解释为注释。
  • 修复 TestOnlyLoopbackExistsWhenUsingDisableNetworkOption 以忽略“DOWN”接口。
  • 添加 cgroup 的 systemd 实现并使容器显示为 systemd 单元。
  • 修复未指定存储库时的提交和导入。
  • 将 /var/lib/docker 重新挂载为 --private 以修复扩展问题。
  • ping 远程注册表时使用环境的代理。
  • 降低无害错误的错误级别。
  • 允许 --volumes-from 是单独的文件。
  • 修复 StdCopy 中的扩展缓冲区。
  • 无论附加还是标准输入,都会设置错误。这修复了#3364。
  • 添加对 --env-file 的支持以从文件加载环境变量。
  • 符号链接 /etc/mtab 和 /proc/mounts。
  • 允许推送单个标签。
  • 在关闭时干净地关闭容器并永远等待容器关闭。这使得守护进程关闭时的容器关闭可以通过 SIGTERM 正常工作。
  • 启动已经运行的容器时不要抛出错误。
  • 修复动态端口分配限制。
  • 从 libcontainer 中删除 setupDev。
  • 将 API 版本添加到docker version.
  • 接收信号时返回正确的退出代码并使 SIGQUIT 退出而不进行清理。
  • 修复 --volumes-from 安装失败。
  • 允许非特权容器创建设备节点。
  • 由于对托管服务的外部依赖性,跳过登录测试。
  • 弃用docker images --treedocker images --viz.
  • 弃用docker insert
  • 包括 apparmor 的基本抽象。这修复了 Ubuntu 14.04 上的一些与 apparmor 相关的问题。
  • 添加在推送时通过 HTTP 命中 401 时的特定错误消息。
  • 修复绝对音量检查。
  • 从配置中删除volumes-from。
  • 将 DNS 选项移至主机配置。
  • 更新 libcontainer 的 apparmor 配置文件。
  • 添加弃用通知docker commit -run.

0.9.1 (2014-03-24)

建设者

  • 修复在一行上打印多条消息的问题。修复构建期间损坏的输出。

文档

  • 修复容器安全性的外部链接。

贡献

  • 修复 init 脚本 cgroup 安装解决方法,使其与 cgroupfs-mount 更相似,从而正常工作。
  • 将 DOCKER_LOGFILE 的变量添加到 sysvinit 中,并在打开日志文件时使用追加而不是覆盖。

黑客

  • 构建时生成 md5 和 sha256 哈希值,并通过 hack/release.sh 上传它们。

远程API

  • 修复docker cp.

运行

  • 在 Darwin 上使用 BSD 原始模式。修复 nano、tmux 等。
  • 仅取消共享 execin 的挂载命名空间。
  • 重试检索图层元数据最多 5 次docker pull
  • 提交时合并现有配置。
  • 修复监视器中的恐慌。
  • 禁用守护程序启动超时。
  • 修复问题 #4681:禁用网络时添加环回接口。
  • 添加问题 #4681 的失败测试用例。
  • 向子进程发送 SIGTERM,而不是 SIGKILL。
  • docker info即使不在调试模式下也显示驱动程序和内核版本。
  • 始终为 libcontainer 符号链接 /dev/ptmx。这修复了与控制台相关的问题。
  • 修复因缺少 /etc/apparmor.d 导致的问题。
  • 创建容器失败时,不要留下空的 cidFile。
  • 改进弃用消息。
  • 修复达尔文的附加出口。
  • devicemapper:改进 devicemapper 设备的处理(添加每个设备锁、增加睡眠时间、睡眠时解锁)。
  • devicemapper:删除不存在的设备时立即成功。
  • devicemapper:将 wait 超时增加到 10 秒。
  • 消除错误时的 goroutine 泄漏。
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式。

0.9.0 (2014-03-10)

建设者

  • 避免在构建期间进行额外的安装/卸载。这修复了构建期间安装/卸载相关的错误。
  • 将错误添加到 docker build --rm。这增加了缺失的错误处理。
  • 禁止链式 onbuildonbuild fromonbuild maintainer触发器。
  • 设为--rm默认值docker build

文档

  • 通过 https 下载适用于 Mac 的 docker 客户端二进制文件。
  • 更新安装说明和说明的标题。
  • 添加升级 boot2docker 的说明。
  • 在 OS X 安装文档中添加端口转发示例。
  • 尝试解开存储库和注册表。
  • 更新文档以解释有关docker ps.
  • 更新 sshd 示例以使用 Dockerfile。
  • 修改一些示例,包括 Python 示例。
  • 更新文档以包含容器生命周期的说明。
  • 更新 docs 文档以讨论 docs 分支。
  • 不要跳过示例的证书检查并使用 HTTPS。
  • 带回删除内核页面时丢失的内存和交换计数部分。
  • 解释 DNS 警告以及如何在运行和使用本地名称服务器的系统上修复这些警告。

贡献

  • 添加对 mkimage-debootstrap 的 Tanglu 支持。
  • 添加 SteamOS 对 mkimage-debootstrap 的支持。

黑客

  • 运行集成测试时获取包覆盖率。
  • 删除 Vagrantfile。它正在被 boot2docker 取代。
  • 修复 aufs 不可用的系统上的测试。
  • 更新打包说明并删除对 lxc 的依赖。

远程API

  • 将特定于 API 的代码移至 api 包。
  • 修复 API 的标头内容类型。使所有端点使用正确的内容类型。
  • 修复注册表身份验证并删除来自 CmdPush 和 CmdPull 的 ping 调用。
  • 将换行符添加到 JSON 流函数。

运行

  • 不要从 CLI ping 注册表。对注册表的所有请求都流经守护进程。
  • 检查 lxc 驱动程序中是否返回 nil 信息。这修复了较旧的 lxc 版本的恐慌。
  • Devicemapper:清理并修复卸载。修复了导致卸载间歇性失败的两个问题。
  • Devicemapper:删除设备时删除目录。删除设备时不会留下目录。
  • Devicemapper:启用skip_block_zeroing。通过不将块归零来提高性能。
  • Devicemapper:修复关闭警告。修复了有关池设备移除的关闭警告。
  • 确保 docker cp 流已正确关闭。修复了文件未被复制的问题docker cp
  • 停止tcp://默认127.0.0.1:4243并删除 tcp 的默认端口。
  • 修复--rundocker commit.这docker commit --run又可以工作了。
  • 修复自定义桥相关选项。这使得自定义桥再次工作。
  • 将 PTY 挂载绑定为容器控制台。这允许 tmux/screen 运行。
  • 添加纯 Go libcontainer 库,以便仅使用 Linux 内核的功能来运行容器。
  • 添加使用 libcontainer 的本机 exec 驱动程序,并将其设为默认的 exec 驱动程序。
  • 添加对处理档案中的扩展属性的支持。
  • 将容器 MTU 设置为与主机 MTU 相同。
  • 为层添加简单的 sha256 校验和以加快速度docker push
  • 改进内核版本解析。
  • 允许标志分组 ( docker run -it)。
  • 删除 chroot exec 驱动程序。
  • 修复除以零以修复恐慌。
  • 重写docker rmi
  • 使用 lxc 1.0.0 修复 docker 信息。
  • 使用 apparmor 修复 fedora tty。
  • 不要总是附加环境变量,用配置中的变量替换默认值。
  • 修复 goroutine 泄漏。
  • 切换到 Go 1.2.1。
  • 修复唯一约束错误检查。
  • 处理 Docker 数据目录和 TMPDIR 的符号链接。
  • 添加标志的弃用警告(-flag 已弃用,取而代之的是 --flag)
  • 添加本机执行驱动程序的 apparmor 配置文件。
  • 将系统特定代码从存档移至 pkg/system。
  • 修复重复信号docker run -i -t(问题#3336)。
  • 返回 lxc 的正确进程 pid。
  • 添加 -G 选项来指定 UNIX 套接字所属的组。
  • 添加-f标志以docker rm强制删除正在运行的容器。
  • 当 docker 守护进程重新启动时,杀死 Ghost 容器并重新启动所有 Ghost 容器。
  • 添加DOCKER_RAMDISK环境变量以使 Docker 在 root 位于 ramdisk 上时工作。

0.8.1 (2014-02-18)

建设者

  • 避免在构建期间进行额外的安装/卸载。这消除了不必要的安装/卸载操作,该操作导致 devicemapper 出现问题
  • 通过添加 tar 文件修复回归。这会阻止 Docker 解压通过 ADD 从本地文件系统添加的 tarball
  • 将错误添加到docker build --rm.这添加了缺失的错误检查,以确保检测并报告删除容器的失败

文档

  • 更新问题归档说明
  • 警告不要对 Docker 的存储文件夹使用符号链接
  • 将 Firefox 示例替换为 IceWeasel 示例
  • 使用 Dockerfile 重写 PostgreSQL 示例并向其中添加更多详细信息
  • 改进 OS X 文档

远程API

  • 修复 1.7 以下版本损坏的图像 API
  • 对返回 JSON 的所有 API 端点使用正确的编码
  • 将远程 api 客户端移至 api/
  • 使用通用套接字等待对 API 进行队列调用

运行

  • 修复桥梁和自定义桥梁的自定义设置的使用
  • 重构 devicemapper 代码以避免许多安装/卸载竞争条件和失败
  • 消除在某些情况下可能导致 Docker 崩溃的两个恐慌
  • 不要从 CLI 客户端 ping 注册表
  • 为devicemapper启用skip_block_zeroing。这会阻止 devicemapper 始终将整个块归零
  • 修复--运行在docker commit.这使得 docker commit 存储--run在镜像配置中
  • 删除 devicemapper 设备时删除目录。这会清理剩余的安装目录
  • 删除非特权容器的 NET_ADMIN 功能。非特权容器无法更改其网络配置
  • 确保docker cp流正确关闭
  • 避免在容器注册期间进行额外的挂载/卸载。这消除了不必要的安装/卸载操作,该操作导致 devicemapper 出现问题
  • 停止允许 tcp:// 作为绑定到 127.0.0.1:4243 的默认 tcp bin 地址,并删除默认端口
  • 将 PTY 挂载绑定为容器控制台。这允许 tmux 和 screen 在容器中运行
  • 清理存档关闭。这修复并改进了存档处理
  • 修复临时目录符号链接的系统上的引擎测试
  • 添加保存和加载的测试方法
  • 重新启动容器时避免暂时卸载容器。这修复了重新启动期间 devicemapper 的竞争
  • 从 GitHub 存储库构建时支持子模块
  • 引用卷路径以允许空格
  • 修复远程 tar ADD 行为。这修复了导致 Docker 提取 tarball 的回归

0.8.0 (2014-02-04)

自 0.7.0 以来的显着功能

  • 图像和容器可以更快地删除

  • 现在使用 docker build 从源代码构建镜像要快得多

  • Docker 守护进程的启动和停止速度更快

  • 通过流式传输文件而不是在内存中缓冲它们、修复内存泄漏以及修复各种次优内存分配,减少了许多常见操作的内存占用

  • 修复了多个竞争条件,使 Docker 在非常高的并发负载下更加稳定。这使得 Docker 更加稳定并且不太可能崩溃,并减少了许多常见操作的内存占用

  • 现在所有打包操作都构建在 Go 语言的标准 tar 实现上,该实现与 Docker 本身捆绑在一起。这使得打包在主机发行版之间更加可移植,并解决了由不同 tar 发行版之间的怪癖和不兼容性引起的几个问题

  • 由于更积极地释放系统资源,Docker 现在可以轻松地创建、删除和修改大量容器和镜像。例如,存储驱动程序 API 现在允许 Docker 对驱动程序创建的挂载进行引用计数。随着 docker 测试的网络和执行子系统的不断变化,这些领域已成为重构的重点。通过将这些子系统移动到单独的包中,我们可以测试、分析和监控这些包的覆盖范围和质量

  • 许多组件已被分成更小的子包,每个子包都有一个专用的测试套件。因此,代码经过更好的测试、更具可读性且更易于更改

  • ADD指令现在支持缓存,这可以避免在未更改的情况下一次又一次不必要地重新上传相同的源内容

  • 新的 ONBUILD 指令向您的映像添加一条“触发”指令,以便稍后在该映像用作另一个构建的基础时执行

  • Docker 现在附带一个实验性存储驱动程序,该驱动程序使用 BTRFS 文件系统进行写入时复制

  • Mac OS X 正式支持 Docker

  • Docker 守护进程支持 systemd 套接字激活

0.7.6 (2014-01-14)

建设者

  • 不要在构建上下文之外遵循符号链接

运行

  • 指定 ro 时重新挂载绑定挂载
  • 使用 https 获取 docker 版本

其他

  • 内联 test.docker.io 指纹
  • 将 ca 证书添加到打包文档中

0.7.5 (2014-01-09)

建设者

  • 禁用构建压缩。更多空间使用,但上传速度更快
  • 修复某些路径的 ADD 缓存
  • 不要从 git build 压缩存档

文档

  • 修复 GROUP 添加示例中的错误
  • 确保 GPG 指纹内嵌在文档中
  • 提供有关为 DCO 设置提交签名的更具体建议

运行

  • 修复拼写错误的容器名称
  • 禁用网络时不要添加主机名
  • 按日期从缓存中返回最新图像
  • 返回 docker wait 的所有错误
  • 将 Content-Type 标头“application/json”添加到 GET /version 和 /info 响应

其他

  • 将DCO更新至版本1.1
  • 更新 Makefile 以使用“docker:GIT_BRANCH”作为生成的映像名称
  • 更新 Travis 以检查新的 1.1 DCO 版本

0.7.4 (2014-01-07)

建设者

  • 修复 ADD 缓存问题。前缀路径
  • 通过恢复稀疏文件 tar 选项来修复 devicemapper 上的 docker 构建
  • 修复文件缓存问题并防止错误的缓存命中
  • 解组 CMD 和 ENTRYPOINT 时使用相同的错误处理

文档

  • 简化 Amazon 快速入门
  • 安装说明使用无前缀的 Fedora 镜像
  • 更新 GCE 上 Docker 的 mtu 标志的说明
  • 将 Ubuntu Saucy 添加到安装中
  • 修复了 master 而非最新版本上的错误版本警告

运行

  • 仅当我们需要计算图像大小时才获取图像的rootfs
  • 正确处理取消映射UDP端口
  • 让 CopyFileWithTar 使用管道而不是缓冲区来节省 docker 构建时的内存
  • 修复登录消息以显示“拉”而不是“推”
  • 通过删除“SOURCE”提示并提及 STDIN 来修复“docker load”帮助
  • 将空白 -H 选项默认设置为与未发送 -H 相同
  • 将 cgroups 实用程序提取到自己的子模块

其他

  • 添加 Travis CI 配置以验证 DCO 和 gofmt 要求
  • 添加开发者原产地证书文本
  • 升级 VBox 来宾添加
  • ping 注册服务器时检查独立标头

0.7.3 (2014-01-02)

建设者

  • 根据添加内容的哈希值更新 ADD 以使用图像缓存
  • 添加空 Dockerfile 的错误消息

文档

  • 更新文档以在屏幕出现时变得更宽
  • 添加有关使用原始二进制文件时需要安装 LXC 的信息
  • 更新 Fedora 文档以解决 docker 和 docker.io 冲突
  • -mtu添加有关在多个 GCE 区域中使用新标志的注释
  • 添加 FrugalWare 安装说明
  • 添加更完整的示例docker run
  • 修复用于创建和启动特权容器的 API 文档
  • 在“/containers/create”上添加缺少的“name”参数文档
  • 添加提及lxc-checkconfig作为检查一些必要的内核配置的方法
  • 更新 1.8 API 文档,添加了 1.7 文档中添加的一些内容

黑客

  • 将缺少的 libdevmapper 依赖项添加到打包程序文档中
  • 将最低 Go 要求更新为 Go 1.2+ 的硬线
  • Vagrantfile 的许多小改进
  • 添加在编译时自定义 dockerinit 搜索位置的功能(仅由需要非标准位置的平台打包者很少使用)
  • 添加封面配置文件生成报告
  • 添加-a到我们的 Go 构建标志,无需手动重新编译 stdlib
  • 更新 Dockerfile 以使其更加规范并在构建过程中减少虚假警告
  • 修复一些杂项docker pull进度条显示问题
  • 迁移“pkg”文件夹下的更多杂项包
  • 更新 TextMate 突出显示以自动为名为“Dockerfile”的文件启用
  • 在公共“contrib/syntax”目录下重新组织语法突出显示文件
  • 更新 install.sh 脚本 ( https://get.docker.io/ ),以便在 Ubuntu/Debian 安装结束时 busybox 无法下载或运行时不会失败
  • 在 bash 补全中添加对容器名称的支持

包装

  • 添加适用于 Darwin (Mac OS X) 的官方 Docker 客户端二进制文件
  • 删除空的“Vendor”字符串并在 deb 包上添加“License”
  • 在 deb 包中添加“/etc/default/docker”的存根版本

运行

  • 更新图层应用程序以就地提取焦油,避免在处理白色时出现文件混乱
  • 修复 tar 处理中 mtime 比较的允许性(因为 GNU tar 和 Go tar 尚不支持亚秒级 mtime 精度)
  • 在纯 Go 中重新实现docker top,甚至在 Docker-in-Docker 中工作更一致(从而消除某些版本中存在的 shell 注入漏洞lxc-ps
  • 更新后的工作方式与插入缺失部分的默认值-H unix://类似-H tcp://
  • 修复有关 dockerinit 的更多边缘情况以及删除或替换的 docker 或 dockerinit 文件
  • 更新容器名称验证以包含“.”
  • 修复使用符号链接或非绝对路径作为参数以-g按预期工作的问题
  • 更新以处理 LXC 之外的外部安装,修复许多小的安装怪癖并使未来的执行后端和其他功能更简单
  • 更新以在各处使用正确的方框绘制字符docker images -tree
  • 将 MTU 设置从 LXC 配置移至直接使用 netlink
  • -S向外部 tar 调用添加选项,以更有效地处理备用文件
  • 将 arch/os 信息添加到 User-Agent 字符串中,特别是对于注册表请求
  • -mtu向 Docker 守护进程添加用于配置 MTU 的选项
  • 修复docker build错误时以非零退出代码退出
  • 添加DOCKER_HOST环境变量来配置客户端-H标志,而无需为每次调用手动指定它

0.7.2 (2013-12-16)

运行

  • 使用标准正则表达式验证创建时的容器名称
  • 将最大图像深度从 42 增加到 127
  • 继续将 api 端点移至作业 api
  • 添加 -bip 标志以允许通过 CIDR 指定动态桥接 IP
  • 在某些系统上未启用 ipv6 时允许创建网桥
  • 从 dockerinit 中设置主机名和 IP 地址
  • 从 dockerinit 中删除功能
  • 当图像中存在符号链接时修复主机上的卷
  • 如果任何容器依赖于镜像,则防止删除镜像,即使该容器未运行
  • 更新 docker Push 以使用新的进度显示
  • 使用 os.Lstat 允许在检查卷时安装 unix 套接字
  • 调整对非活动用户登录的处理
  • 在旧内核的 devicemapper 中添加缺少的定义
  • 允许在不验证容器的情况下进行取消标记操作
  • 将身份验证配置添加到 docker build

文档

  • 添加有关 Docker 日志记录的更多信息
  • 添加 RHEL 文档
  • 添加用于更改在容器中运行的 CMD 的直接示例
  • 更新Arch安装文档
  • 添加有关可信构建的部分
  • 添加网络文档页面

其他

  • 添加新的封面包以提供代码覆盖率报告
  • 捆绑中单独的集成测试
  • 让 Tianon 成为 hack 维护者
  • 更新 mkimage-debootstrap,进行更多调整以保持图像较小
  • 使用https获取安装脚本
  • Go 1.2 已经发布,请删除供应商的 dotcloud/tar

0.7.1 (2013-12-05)

文档

  • 添加@SvenDowideit 作为文档维护者
  • 添加链接示例
  • 添加有关大使模式的文档
  • 添加 Google Cloud Platform 文档
  • 添加 dockerfile 最佳实践
  • 更新 RHEL 文档
  • 更新注册表文档
  • 更新 Postgres 示例
  • Ubuntu 安装的更新文档
  • 改进远程 api 文档

运行

  • 将hostconfig添加到docker检查
  • 实现docker log -f流日志
  • 添加环境变量以禁用内核版本警告
  • 添加 -format 到docker inspect
  • 支持文件的绑定挂载
  • 修复 RHEL 上的桥创建
  • 修复图像大小计算
  • 即使桥已经存在,也要确保调用 iptables
  • 修复仅附加 stderr 的问题
  • 销毁容器时删除初始化层
  • 修复相同端口在不同接口上的绑定
  • docker build现在返回正确的退出代码
  • 修复docker port以显示正确的端口
  • docker build现在检查 dockerfile 是否存在于客户端
  • docker attach现在返回正确的退出代码
  • 当容器不存在时删除名称条目

登记处

  • 改进进度条,添加下载预计时间
  • 同时拉取现在等待第一个完成而不是失败
  • 推送到注册表时仅标记顶层镜像
  • 修复离线图像传输问题
  • 修复注册表密码中无法使用“:”的问题

其他

  • 添加用于调试的 pprof 处理程序
  • 创建一个生成文件
  • 使用现在包含修复的 stdlib tar
  • 改进make.sh测试脚本
  • 在守护进程上处理 SIGQUIT
  • 在测试期间禁用详细信息
  • 升级到go1.2正式构建
  • 改进单元测试
  • 测试套件现在运行所有测试,即使其中一个测试失败
  • 在 Go 中重构 C (Devmapper)
  • 修复 OS X 编译

0.7.0 (2013-11-25)

自 0.6.0 以来的显着功能

  • 存储驱动程序:从 aufs、device-mapper 或 vfs 中选择。
  • 标准 Linux 支持:docker 现在可以在未修改的 Linux 内核和所有主要发行版上运行。
  • 链接:通过将容器相互连接来组成复杂的软件堆栈。
  • 容器命名:通过给容器起好记的名称来组织容器。
  • 高级端口重定向:指定每个接口的端口重定向,或将敏感端口保密。
  • 离线传输:将图像推送和拉取到文件系统,而不会丢失信息。
  • 质量:大量错误修复和小的可用性改进。测试覆盖率显着增加。

0.6.7 (2013-11-21)

运行

  • 提高稳定性,修复一些竞争条件
  • 删除容器卷时跳过已挂载的卷。
  • 修复层大小计算:正确处理硬链接
  • 使用 docker cp CONTAINER:PATH 的工作路径
  • 修复 tmp 目录从不清理的问题
  • 加速 docker ps
  • 有关名称冲突的更多信息性错误消息
  • 修复名称服务器正则表达式
  • 始终返回长 id
  • 修复容器重启竞争条件
  • 在 docker stop;docker start 上保留已发布的端口
  • 修复 Fedora 上的容器网络
  • 正确向 iptables 表达“任何地址”
  • 修复重新连接到 Ghost 容器时的网络设置
  • 如果正在运行的容器使用映像,则防止删除
  • 锁定图中的读取操作

远程API

  • 返回 docker rmi 上的完整 ID

客户

  • 向图像添加 -tree 选项
  • 离线图像传输
  • 使用错误时退出并显示状态 2,并在 stderr 上显示使用情况
  • 不要将 SIGCHLD 转发到容器
  • 对 docker 事件使用字符串时间戳 -since

其他

  • 更新到go 1.2rc5
  • 为 upstart 添加 /etc/default/docker 支持

0.6.6 (2013-11-06)

运行

  • 确保寄存器上的容器名称
  • 修复 /etc/hosts 中的回归
  • 在图中的写入操作周围添加锁
  • 检查端口是否有效
  • 修复 Ghost 容器网络的重启运行时错误
  • 添加更多颜色和动物以增加生成的名称池
  • 修复 docker 检查中的问题
  • 逃离apparmor的限制
  • 使用文件设置环境变量。
  • 防止 docker insert 删除某些内容
  • 防止 CreateBridgeIface 中的 DNS 服务器冲突
  • 验证服务器端的绑定安装
  • 在 docker build 中使用父镜像配置
  • 修复 /etc/hosts 中的回归

客户

  • 添加 -P 标志以发布所有公开的端口
  • 将 -notrunc 和 -q 标志添加到 docker 历史记录
  • 修复 docker 提交、标记和导入的使用
  • 在 docker 搜索中添加星星、可信构建和库标志
  • 使用 tty 修复 docker 日志

远程API

  • 让 /events API 立即发送标头
  • 不要拆分最后一列 docker top
  • 将尺寸添加到历史记录

其他

  • Contrib:桌面集成。火狐浏览器用例。
  • Dockerfile:跳转到 go1.2rc3

0.6.5 (2013-10-29)

运行

  • 现在可以命名容器
  • 现在可以将容器链接在一起以进行服务发现
  • “run -a”、“start -a”和“attach”可以将信号转发到容器,以便更好地与进程管理器集成
  • 重启后自动启动崩溃的容器
  • 将 IP、端口和原型公开为容器链接的单独环境变量
  • 允许将端口发布到特定 ip
  • 默认禁止容器间通信
  • 忽略 Container.Attach 中标准输入的 ErrClosedPipe
  • 删除未使用的字段 kernelVersion
  • 修复容器中挂载 /mnt 子目录时的问题
  • 修复删除图像期间取消标记的问题
  • 在 dockerinit 内更改工作目录时检查 syscall.Chdir 的返回值

客户

  • 仅在需要时传递 stdin 进行劫持以避免关闭管道错误
  • 在命令行方法调用中使用较少的反射
  • 在启动容器之后而不是之前监视 tty 大小
  • 删除 log.Fatal 之后无用的 os.Exit() 调用

黑客

  • 添加初始初始化脚本库和适用于 Debian 的更安全的 Ubuntu 打包脚本
  • 添加 -p 选项以使用 http_proxy 调用 debootstrap
  • 使用 $sh_c 更新 install.sh 以获取 modprobe 的 sudo/su
  • 更新所有 mkimage 脚本以使用 --numeric-owner 作为 tar 参数
  • 更新 hack/release.sh 流程以自动调用 hack/make.sh 并解决构建和测试问题

其他

  • 文档:修复示例中 nc 的标志
  • 测试:删除警告并防止安装问题
  • 测试:更改 tty 调整大小的逻辑以避免测试中出现警告
  • 构建器:使用详细输出修复 docker 构建中的竞争条件
  • 注册表:修复 PushImageJSONIndex 方法的内容类型
  • Contrib:改进帮助工具来生成 debian 和 Arch Linux 服务器镜像

0.6.4 (2013-10-16)

运行

  • 添加 Start() 失败时容器的清理
  • 向 utils/stdcopy.go 添加更好的注释
  • 添加 utils.Errorf 用于错误日志记录
  • 将 -rm 添加到 docker run 以在退出时删除容器
  • 删除实际上不是错误的错误消息
  • docker rm用卷修复
  • 修复了一些 HTTP 正文可能未关闭的错误情况
  • 修复错误的 dockercfg 文件引起的恐慌
  • 使用 -i 修复附加行为
  • 记录状态中的终止时间。
  • 使用空字符串,以便 TempDir 自动使用操作系统的临时目录
  • 确保关闭网络分配器
  • 默认情况下自动重启容器
  • 促使供应商 kr/pty 提交 3b1f6487b(syscall.O_NOCTTY)
  • lxc:允许容器中的 set_file_cap 功能
  • 仅将 run -rm 移至 cli
  • 拆分标准输出标准错误
  • 始终为容器创建新会话

测试

  • 添加聚合的 docker-ci 电子邮件报告
  • 添加清理以删除剩余的容器
  • 将夜间版本添加到 docker-ci
  • 围绕 auth.ResolveAuthConfig 添加更多测试
  • 删除测试中的一些错误
  • TCP 和 UDP 代理终止时捕获 errClosing 错误
  • 仅使用 TESTFLAGS='-run TestName' make.sh 运行某些测试
  • 阻止 docker-ci 测试关闭 PR
  • 在测试中用 log.Fatal 替换panic
  • 增加 TestRunDetach 超时

文档

  • 添加 Docker 基础设施文档的初始草案
  • 将 devenvironment 链接添加到 CONTRIBUTING.md
  • 添加apt-get install curl到 Ubuntu 文档
  • 添加出口限制说明
  • 添加 .dockercfg 文档
  • 删除有关 #1422 解决方法的 Gentoo 安装说明
  • 修复 -v 选项的帮助文本
  • 修复 Ping 端点文档
  • 修复 ADD 命令文档中的参数名称
  • 修复变更日志中讽刺性的拼写错误
  • postgres 示例中的各种命令修复
  • 文档如何编辑和发布
  • 小更新postgresql_service.rst
  • 向贡献者阐明 LGTM 流程
  • 更正了包名称中的错误
  • 记录vagrant up实际在做什么
  • 改进文档搜索结果
  • 清理 API 1.5 文档中的空格
  • 在 MAINTAINER 示例电子邮件中使用尖括号
  • 更新 archlinux.rst
  • 更改为文档的新样式。包括版本切换器。
  • 格式化,添加多行json信息
  • 改进注册表和索引 REST API 文档
  • 将已弃用的升级参考替换为 docker-latest.tgz,该参考自 0.5.3 以来尚未更新
  • 现在我们已经在 portage 树中了,更新 Gentoo 安装文档
  • 为贡献者和维护者清理和重新组织文档和工具
  • 对protocoll ->protocol进行小幅拼写更正

贡献

  • 为 @honza 的 Dockerfile 添加 vim 语法突出显示
  • 添加 mkimage-arch.sh
  • 重新组织贡献的完成脚本以添加 zsh 完成

黑客

  • 将vagrant用户添加到docker组
  • 为“docker Push”添加正确的 bash 补全
  • 添加 xz utils 作为运行时 dep
  • 添加 #2010 的清理/重构部分以进行 hack 和 Dockerfile 更新
  • 添加 contrib/mkimage-centos.sh 回来(来自 #1621),以及相关的文档链接
  • 添加 #1920 中的一些小型 make.sh 修复,并使输出更加一致且对贡献者友好
  • 将 @tianon 添加到 hack/MAINTAINERS
  • 提高 VirtualBox 的网络性能
  • 修改 install.sh 以供更多人使用,并尽可能使用官方安装方法(apt repo、portage tree 等)
  • 修复 contrib/mkimage-debian.sh apt 缓存预防
  • 添加 Dockerfile.tmLanguage 到 contrib
  • 配置 FPM 使 /etc/init/docker.conf 成为配置文件
  • 在 Vagrant VM 中启用 SSH 代理转发
  • 对 contrib/mkimage-debian.sh 进行了一些小调整/修复

其他

  • 构建器:如果 mergeConfig 返回错误,则中止构建并修复重复的错误消息
  • 打包:删除已弃用的打包目录
  • 注册表:登录时使用正确的身份验证配置。
  • 注册表:修复错误消息,使其与正则表达式相同

0.6.3 (2013-09-23)

包装

  • 在安装 ubuntu 软件包时添加“docker”组
  • 更新 tar 供应商依赖项
  • 通过 HTTPS 下载 apt 密钥

运行

  • 仅复制和更改非绑定安装卷上的权限
  • 允许多个卷来自
  • 修复来自 STDIN 的 HTTP 导入

文档

  • 更新有关在构建后提取 docker 二进制文件的部分
  • 更新新构建过程的开发环境文档
  • 从文档中删除“基本”图像

其他

  • 客户端:修复分离问题
  • 注册表:更新正则表达式以匹配索引

0.6.2 (2013-09-17)

运行

  • 添加域名支持
  • 使用path.Match实现图像过滤
  • 删除不必要的警告
  • 删除操作系统/用户依赖性
  • 仅当配置存在时才挂载主机名文件
  • 处理docker login命令内的信号
  • UID 和 GID 现在也应用于卷
  • docker start出错时设置错误代码
  • docker run设置与进程启动时相同的错误代码

建设者

  • 添加 -rm 选项以删除中间容器
  • 允许 RUN 指令使用多行

登记处

  • 使用私有注册表实现登录
  • 修复推送问题

其他

  • Hack:供应商所有依赖项
  • 远程 API:升级到 v1.5
  • 打包:将 hack/make.sh 分解为小脚本,每个“捆绑包”一个:测试、二进制、ubuntu 等。
  • 文档:一般改进

0.6.1 (2013-08-23)

登记处

  • 将 API 调用中的“元”标头传递给注册表

包装

  • 使用正确的新贵脚本和新的构建工具
  • 使用 libffi-dev,不要从源代码构建它
  • 删除重复的 Mercurial 安装命令

0.6.0 (2013-08-22)

运行

  • 添加 lxc-conf 标志以允许自定义 lxc 选项
  • 添加一个选项来设置工作目录
  • 将图像名称添加到 LogEvent 测试
  • 添加 -privileged 标志和相关测试、文档和示例
  • 添加 websocket 支持到 /container//附加/ws
  • 当net.ipv4.ip_forwarding = 0时添加警告
  • 将主机名添加到环境中
  • 添加最后一个稳定版本docker version
  • 修复并行拉动中的竞争条件
  • 修复 Graph ByParent() 以生成每个父图像的子图像列表。
  • 修复拼写错误:fmt.Sprint -> fmt.Sprintf
  • 修复 docker build 中的小 \n 错误
  • 修复“在 /.dockerinit 处注入 dockerinit”
  • 修复#910。将用户名打印到 docker info 输出
  • dockerbuilder 使用 Go 1.1.2
  • 在通道上使用范围 for 循环
  • 在 server.ImageDelete 中使用 utils.ParseRepositoryTag 而不是 strings.Split(name, ":")
  • 改进 CMD、ENTRYPOINT 和附加文档。
  • 改进带有套接字错误的连接消息
  • 仅在需要时加载 authConfig 并修复无用的警告
  • 显示图像丢失时使用的标签
  • 创建卷之前应用 Volumes-from
  • 使 docker run 处理 SIGINT/SIGTERM
  • 防止 .dockercfg 不可读时崩溃
  • 安装脚本应通过 https 而不是 http 获取。
  • API,问题 1471:使用组获取套接字权限
  • 正确检测IPv4转发
  • 将 /dev/shm 挂载为 tmpfs
  • get.docker.io 从 http 切换到 https
  • 让用户态代理处理容器绑定的流量
  • 更新 Docker CLI 以指定“Host”标头的值。
  • 更改网络范围以避免与 EC2 DNS 冲突
  • 减少 ping 注册表时的连接和读取超时
  • 平行拉力
  • 处理显示无掩码 IP 地址的 ip 路由
  • 允许 ENTRYPOINT 不使用 CMD
  • 解析 FQN 存储库名称时,始终将 localhost 视为域名
  • 重构校验和

文档

  • 添加 MongoDB 图像示例
  • 添加创建和使用 docker 组的说明
  • 将 sudo 添加到示例并将安装添加到文档
  • 添加 ufw 文档
  • 添加对 ps -a 的引用
  • 通过 LXC 添加有关 Docker 高级工具的信息。
  • 修复 docker run -dns 文档中的拼写错误
  • 修复 ubuntu 安装指南中的拼写错误
  • 修复有关添加 docker 组的文档
  • 更新默认 -H 文档
  • 使用构建依赖项更新自述文件
  • 更新 amazon.rst 以解释在 ec2 上运行 Docker 不需要 Vagrant
  • 文档中的 PostgreSQL 服务示例
  • 建议默认安装 linux-headers。
  • 更改推特句柄
  • 澄清 Amazon EC2 安装
  • “基本”图像已弃用,不应再在文档中引用。
  • 移动有关官方支持内核的注释
  • 解决了 Safari 中徽标被压扁的问题

建设者

  • 在 Dockerfile 中添加 USER 指令
  • 添加对构建文件的 workdir 支持
  • 为 docker 构建不添加缓存
  • 修复 docker build 和 docker events 输出
  • 仅将已知指令计为构建步骤
  • 确保构建中的 ENV 指令每次都执行提交
  • 禁止 docker build ADD 中的某些路径
  • 构建使用中的存储库名称(以及可选的标签)
  • 确保 ADD 将创建 0755 中的所有内容

远程API

  • 按最近的创建日期对图像进行排序。
  • 重新设计注册表模块中的不透明请求
  • 在 /events 中添加图像名称
  • 使用mime pkg解析Content-Type
  • 650 http utils 和用户代理字段

黑客

  • Bash Completion:将命令限制到相关状态的容器
  • 将 docker 依赖项覆盖率测试添加到 docker-ci 中

包装

  • Docker-brew 0.5.2 支持和内存占用减少
  • 将新的 docker 依赖项添加到 docker-ci 中
  • 恢复“docker.upstart:避免生成sh进程”
  • Docker-brew 和 Docker 标准库
  • 用 docker 发布 docker
  • 修复 get.docker.io 生成的 upstart 脚本
  • 使文档能够生成联机帮助页。
  • 在 Vagrant 中将 Bind 守护进程恢复为 0.0.0.0。

登记

  • 改进身份验证推送
  • 注册表单元测试+模拟注册表

测试

  • 改进 TestKillDifferentUser 以防止 buildbot 超时
  • 修复 TestBindMounts 中的拼写错误(在没有图像的情况下调用 runContainer)
  • 改进 TestGetContainersTop,使其不依赖于睡眠
  • 放宽lo接口测试,允许iface索引!= 1
  • 为 docker-ci 添加注册表功能测试
  • 在服务器和实用程序中添加一些测试

其他

  • Contrib:bash 补全脚本
  • 客户端:添加 docker cp 命令和 copy api 端点以将容器文件/文件夹复制到主机
  • 仅附加到 stdin 时不从 stdout 读取

0.5.3 (2013-08-13)

运行

  • 使用docker组获取socket权限
  • 在 upstart 脚本中生成 shell
  • 处理显示无掩码 IP 地址的 ip 路由
  • 将主机名添加到环境中

建设者

  • 确保构建中的 ENV 指令每次都执行提交

0.5.2 (2013-08-08)

  • Builder:禁止 docker build ADD 中的某些路径
  • 运行时:更改网络范围以避免与 EC2 DNS 冲突
  • API:更改守护进程以默认侦听 unix 套接字

0.5.1 (2013-07-30)

运行

  • 添加ps参数到docker top
  • 添加对容器 ID 文件(如 pidfile)的支持
  • 在默认环境中添加container=lxc
  • 支持无网络容器docker run -ndocker -d -b=none
  • Stdout/stderr 日志现在与 JSON 存储在同一文件中
  • 默认分配 /16 IP 范围,并回退到 /24。尝试 12 个范围而不是 3 个。
  • 将.dockercfg格式更改为json并支持多个auth远程
  • 不要覆盖配置中的卷
  • 修复 EXPOSE 覆盖问题

应用程序编程接口

  • Docker 客户端现在设置 useragent (RFC 2616)
  • 添加 /events 端点

建设者

  • ADD 命令现在可以理解 URL
  • CmdAdd 和 CmdEnv 现在尊重 Dockerfile 设置的 ENV 变量
  • 在 ADD 指令中使用 755 而不是 700 创建目录

黑客

  • 使用助手简化单元测试
  • 改进 docker.upstart 事件
  • 将覆盖率测试添加到 docker-ci 中

0.5.0 (2013-07-17)

运行

  • 使用“docker top”列出容器内运行的所有进程
  • 可以使用“docker run -v”将主机目录安装为卷
  • 容器可以公开公共 UDP 端口(例如“-p 123/udp”)
  • 可以选择指定一个确切的公共端口(例如“-p 80:4500”)
  • “docker登录”支持附加选项
  • 提交镜像时不要保存容器的主机名。

登记处

  • 受 Go 打包约定启发的新图像命名方案允许任意注册表组合
  • 修复将图像上传到私有注册表时的问题

建设者

  • ENTRYPOINT 指令设置容器的默认二进制入口点
  • VOLUME指令将容器的一部分标记为持久数据
  • “docker build”默认显示构建的完整输出

0.4.8 (2013-07-01)

  • 构建器:新的构建操作 ENTRYPOINT 向容器添加可执行入口点。 - 运行时:修复导致“docker run -d”不再打印容器 ID 的错误。
  • 测试:修复测试套件中的问题

0.4.7 (2013-06-28)

远程API

  • 下载和上传大文件时进度条更新得更快
  • 修复可选 unix 套接字传输中的错误

运行

  • 改进内核版本检测
  • 可以使用“docker run -b”将主机目录安装为卷
  • 修复仅附加到 stdin 时的问题
  • 使用“tar --numeric-owner”以避免多个主机之间的 uid 不匹配

黑客

  • 改进测试套件和开发环境
  • 删除对“os/user”单元测试的依赖

其他

  • 注册表:更轻松地推送/拉取自定义注册表
  • 文档:添加术语部分

0.4.6 (2013-06-22)

  • 运行时:修复导致创建空图像(和卷)崩溃的错误。

0.4.5 (2013-06-21)

  • 构建器:“docker build git://URL”获取并构建远程 git 存储库
  • 运行时:“docker ps -s”可选择打印容器大小
  • 测试:改进和简化
  • 运行时:修复 0.4.3 中引入的导致日志命令失败的回归。
  • 构建器:修复在单个常规文件中使用 ADD 时出现的回归问题。

0.4.4 (2013-06-19)

  • 构建器:修复 0.4.3 中引入的回归,该回归导致新客户端上的构建失败。

0.4.3 (2013-06-19)

建设者

  • 添加本地文件将检测 tar 存档并解压它们
  • 添加改进:使用tar进行复制+自动解压本地压缩包
  • ADD 使用 tar/untar 进行复制,而不是调用“cp -ar”
  • 修复 ADD 的行为,使其(大部分)反向兼容、可预测且有详细记录。
  • 修复了如果 ADD 是第一个命令则导致构建失败的错误
  • “docker build”的更好输出

运行

  • 删除 bsdtar 依赖
  • 添加unix套接字和多个-H支持
  • 防止 rm 运行容器
  • 使用go1.1 cookiejar
  • 修复与正在运行的 TTY 容器分离的问题
  • 禁止对单个图像/存储库进行并行推/拉。修复#311
  • 修复连接时运行命令中的竞争条件。

客户

  • 拉动时人类可读的进度条尺寸
  • 修复 docker 版本的 git commit 输出

应用程序编程接口

  • 在 History API 调用中发送所有标签
  • 将标签查找添加到历史命令。修复 #882

文档

  • 修复 IRC Bouncer 示例中缺少的命令

0.4.2 (2013-06-17)

  • 打包:改进版本以解决 Ubuntu 错误

0.4.1 (2013-06-17)

远程API

  • 添加标志以启用跨域请求
  • 在 docker ps 和 docker images 中添加镜像和容器大小

运行

  • 使用“docker -d -dns”在主机范围内配置 dns 配置
  • 检测错误的 DNS 配置并将其替换为公共默认值
  • 允许 docker 运行:
  • 您现在可以指定公共端口(例如:-p 80:4500)
  • 改进图像删除以垃圾收集未引用的父级

客户

  • 检查中允许使用多个参数
  • 打印劫持前的容器iddocker run

登记处

  • 添加对存储库名称的正则表达式检查
  • 将身份验证移至客户端
  • 删除拉取时的登录检查

其他

  • Vagrantfile:将其余api端口添加到vagrantfile的port_forward
  • 升级到Go 1.1
  • 生成器:不要t ignore last line in Dockerfile when it doesn以 \n 结尾

0.4.0 (2013-06-03)

建设者

  • 介绍建造者
  • “docker build”从包含 Dockerfile 的源存储库逐层构建容器

远程API

  • 远程 API 简介
  • 使用简单的 HTTP/json API 以编程方式控制 Docker

运行

  • 各种可靠性和可用性改进

0.3.4 (2013-05-30)

建设者

  • “docker build”从包含 Dockerfile 的源存储库逐层构建容器
  • 'docker build -t FOO' 将标签 FOO 应用于新构建的容器。

运行

  • 交互式 TTY 正确处理窗口大小调整
  • 修复配置在层之间合并的方式

远程API

  • 在“docker run”上拆分 stdout 和 stderr
  • 可选择侦听不同的 IP 和端口(使用风险自负)

文档

  • 改进安装说明。

0.3.3 (2013-05-23)

  • 注册表:修复推送回归
  • 各种错误修复

0.3.2 (2013-05-09)

登记处

  • 改进校验和流程
  • 使用大小在推动时有一个良好的进度条
  • 使用实际存档(如果存在)以加快推送速度
  • 修复推送时的 400 错误

运行

  • 在提交时存储实际的存档

0.3.1 (2013-05-08)

建设者

  • 在 docker builder 中实现自动运行功能
  • 将缓存添加到 docker builder
  • 添加对使用本机 API 作为顶级命令的 docker 构建器的支持
  • 在 docker builder 中实现 ENV
  • 在为案例创建并添加单元测试之前检查命令是否存在
  • 使用空格代替制表符

运行

  • 添加 go 版本来调试信息
  • 内核版本 - 如果风味为空,则不显示破折号

登记处

  • 添加 docker search 顶级命令以搜索存储库
  • 修复带有特定标签的官方图像的拉取问题
  • 修复使用不同用户登录并尝试推送时的问题
  • 改进校验和 - 异步计算

图片

  • 将图像输出到点图 (graphviz)
  • 修复ByParent功能

文档

  • 新的介绍和高级概述
  • 添加 docker builder 的文档
  • 修复了 docker 文档的 CSS,使 REST API 文档看起来更好。
  • 修复 CouchDB 示例页面标题错误
  • 修复自述文件格式

其他

  • 网站:新的高级概述
  • Makefile:将“go get”替换为“go get -d”,特别是在 go1.1rc 上编译
  • 包装:包装ubuntu;问题#510:使用 golang-stable PPA 包构建 docker

0.3.0 (2013-05-06)

运行

  • 修复命令存在检查
  • strings.Split 可能会在不匹配时返回空字符串
  • 修复索引超出范围崩溃(如果 cgroup 内存不存在)

文档

  • 各种改进
  • 新示例:在 2 个 couchdb 数据库之间共享数据

其他

  • Vagrant:在 /etc/apt 中仅使用一根 deb 行
  • 注册表:实施新注册表

0.2.2 (2013-05-03)

  • 支持数据卷('docker run -v=PATH')
  • 在容器之间共享数据卷('docker run -volumes-from')
  • 改进文档
  • 升级到Go 1.0.3
  • 为贡献者提供的开发环境的各种升级

0.2.1 (2013-05-01)

  • “docker commit -run”将一个层与默认运行时选项捆绑在一起:命令、端口等。
  • 改进 Vagrant 上的安装过程
  • 新的 Dockerfile 操作:“维护者”
  • 新的 Dockerfile 操作:“暴露”
  • 新的 Dockerfile 操作:“cmd”
  • 用于构建 Debian 基础层的 Contrib 脚本
  • “docker -d -r”:在守护进程启动时重新启动崩溃的容器
  • 运行时:提高测试覆盖率

0.2.0 (2013-04-23)

  • 运行时:幽灵容器可以被杀死并等待
  • 文档:更新安装说明
  • 打包:修复Vagrantfile
  • 开发:自动发布二进制文件和 ubuntu 软件包
  • 添加变更日志
  • 各种错误修复

0.1.8 (2013-04-22)

  • 动态检测cgroup能力
  • 对 <3.8 的内核发出稳定性警告
  • “docker Push”缓冲区位于磁盘而不是内存上
  • 修复已删除文件的“docker diff”
  • 修复幽灵容器的“docker stop”
  • 修复 pidfile 的处理
  • 各种错误修复和稳定性改进

0.1.7 (2013-04-18)

  • 容器端口在本地主机上可用
  • “docker ps”显示分配的 TCP 端口
  • 贡献者可以运行“make hack”来启动持续集成虚拟机
  • 简化 ubuntu 打包和上传
  • 各种错误修复和稳定性改进

0.1.6 (2013-04-17)

  • 使用“docker commit -author”为作者记录图像

0.1.5 (2013-04-17)

  • 禁用独立模式
  • 使用带有“docker -d -dns”的自定义 DNS 解析器
  • 检测幽灵容器
  • 改进对缺失系统功能的诊断
  • 允许在编译时禁用内存限制
  • 添加 debian 包装
  • 文档:在 Arch Linux 上安装
  • 文档:在 docker 上运行 Redis
  • 修复 lxc 0.9 兼容性
  • 自动加载aufs模块
  • 各种错误修复和稳定性改进

0.1.4 (2013-04-09)

  • 完全支持 TTY 模拟
  • 使用转义序列从 TTY 会话中分离C-p C-q
  • 各种错误修复和稳定性改进
  • 用户界面的小改进
  • 自动创建我们自己的桥接口“docker0”

0.1.3 (2013-04-04)

  • 使用“-p :PORT”选择 TCP 前端端口
  • 图层格式已版本化
  • 流程管理器的主要可靠性改进
  • 各种错误修复和稳定性改进

0.1.2 (2013-04-03)

  • 使用“docker run -h”设置容器主机名
  • 使用“docker run -a [stdin[,stdout[,stderr]]]”在运行时选择性附加
  • 各种错误修复和稳定性改进
  • 用户界面润色
  • 推/拉进度条
  • 默认使用 XZ 压缩
  • 使 IP 分配器变得懒惰

0.1.1 (2013-03-31)

  • 显示速记 ID 以方便使用
  • 稳定流程管理
  • 层可以包含提交消息
  • 简化的“docker Attach”
  • 修复重新附加的支持
  • 各种错误修复和稳定性改进
  • 运行时自动下载
  • 推送时自动登录
  • 增强文档

0.1.0 (2013-03-23)

首次公开发布

  • 实施注册表以推送/拉取图像
  • TCP端口分配
  • 修复 Linux 上的 termcap
  • 添加文档
  • 使用 Vagrantfile 添加 Vagrant 支持
  • 添加单元测试
  • 添加存储库/标签以简化图像管理
  • 改进层实现