Docker Engine 先前版本

目錄

1.13.1 (2017-02-08)

重要

在以 devicemapper 作為預設儲存驅動程式的 Linux 發行版上,現在預設使用 overlay2overlay(如果核心支援)。若要使用 devicemapper,您可以透過 --storage-driver 常駐程式選項,或在 daemon.json 設定檔中設定 "storage-driver",手動配置要使用的儲存驅動程式。

重要

在 Docker 1.13 中,受管插件 API 相比 Docker 1.12 中引入的實驗版本有所變更。您必須在升級至 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) 與用戶端

  • 支援在 docker stack deploy 中使用 compose 檔案的 secrets #30144

執行時期

  • 修復 docker system df 中的大小問題 #30378
  • 修復 Swarm 憑證過期時 docker inspect 的錯誤。 #29246
  • 修復 v1 插件啟用錯誤時的死結 #30408
  • 修復 SELinux 回歸 #30649

插件

  • 支援 Swarm 模式下的全域範圍網路插件 (v2) #30332
  • 新增 docker plugin upgrade #29414

Windows

  • 修復 Windows 上舊插件的小型回歸 #30150
  • 修復 Windows 上的警告 #30730

1.13.0 (2017-01-18)

重要

在以 devicemapper 作為預設儲存驅動程式的 Linux 發行版上,現在預設使用 overlay2overlay(如果核心支援)。若要使用 devicemapper,您可以透過 --storage-driver 常駐程式選項,或在 daemon.json 設定檔中設定 "storage-driver",手動配置要使用的儲存驅動程式。

重要

在 Docker 1.13 中,受管插件 API 相比 Docker 1.12 中引入的實驗版本有所變更。您必須在升級至 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
  • docker build 上新增步驟編號 #24978
  • 新增在映像檔建置期間壓縮建置內容的支援 #25837
  • docker build 新增 --network #27702
  • 修復 docker builddocker run--label 旗標之間的不一致行為 #26027
  • 修復使用 overlay 儲存驅動程式時的映像檔層不一致問題 #27209
  • 現在允許使用未使用的 build-args。將顯示警告而非錯誤和建置失敗 #27412
  • 修復 Windows 上的建置器快取問題 #27805
  • 允許在 Windows 上建置器使用 USER #28415
  • 在 Windows 上處理 env 時不區分大小寫 #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
  • 新增對 aarch64 的 make deb 支援 #27625

發布

  • 更新 notary 相依性至 0.4.2(完整變更紀錄此處#27074
    • 對 Windows 上的編譯提供支援 docker/notary#970
    • 改善用戶端認證錯誤的錯誤訊息 docker/notary#972
    • 支援尋找 ~/.docker/trust/private 目錄中任何位置的金鑰,而不僅限於 ~/.docker/trust/private/root_keys~/.docker/trust/private/tuf_keysdocker/notary#981
    • 先前,在任何更新錯誤時,用戶端會回退到快取。現在,只有在發生網路錯誤、伺服器不可用或缺少 TUF 資料時才會這樣做。無效的 TUF 資料會導致更新失敗 - 例如發生無效的根輪換時。docker/notary#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
  • fluentd 的 Unix socket 支援 #26088
  • 在 Windows 上啟用 fluentd 日誌驅動程式 #28189
  • 當用作 journald 欄位名稱時,對 docker 標籤進行清理 #23725
  • 修復 docker logs --tail 返回行數少於預期的問題 #28203
  • Splunk 日誌驅動程式:效能和可靠性改進 #26207
  • Splunk 日誌驅動程式:可配置的格式和跳過連線驗證 #25786

網路

  • 新增 --attachable 網路支援,以啟用 docker run 在 swarm 模式 overlay 網路中運作 #25962
  • 為使用 docker service create--publish 選項的服務,新增對主機連接埠 PublishMode 的支援 #27917#28943
  • 新增對 Windows Server 2016 overlay 網路驅動程式的支援(需要即將推出的 WS2016 更新)#28182
  • 將預設的 FORWARD 原則變更為 DROP #28257
  • 新增對在 Windows 上為預先定義網路指定靜態 IP 位址的支援 #22208
  • 修復 docker run 上的 --publish 旗標在 IPv6 位址下無法運作的問題 #27860
  • 修復 inspect 網路顯示帶有遮罩的閘道的問題 #25564
  • 修復橋接器中多個位址可能導致 --fixed-cidr 沒有正確位址的問題 #26659
  • docker network inspect 新增建立時間戳記 #26130
  • docker network inspect 中顯示 swarm overlay 網路的對等節點 #28078
  • 啟用服務 VIP 位址的 ping 功能 #28019

插件

  • 將插件移出實驗階段 #28226
  • docker plugin remove 新增 --force #25096
  • 新增對動態重新載入授權插件的支援 #22770
  • docker plugin ls 中新增描述 #25556
  • docker plugin inspect 新增 -f/--format #25990
  • 新增 docker plugin create 指令 #28164
  • 將請求的 TLS 對等憑證傳送給授權插件 #27383
  • 支援 swarm 模式下的全域範圍網路和 ipam 插件 #27287
  • docker plugin install 分割為兩個 API 呼叫 /privileges/pull #28963

遠端 API (v1.25) 與用戶端

  • 支援從 Compose 檔案 docker stack deploy #27998
  • (實驗性) 實作檢查點和還原 #22049
  • docker info 新增 --format 旗標 #23808
  • docker volume create 移除 --name #23830
  • 新增 docker stack ls #23886
  • 新增一個 is-task ps 篩選器 #24411
  • docker service create 新增 --env-file 旗標 #24844
  • docker stats 新增 --format #24987
  • 使 docker node ps 在 swarm 節點中預設為 self #25214
  • docker service create 新增 --group #25317
  • 為服務/節點/堆疊 ps 輸出新增 --no-trunc #25337
  • 將 Logs 新增至 ContainerAttachOptions,以便 go 用戶端可以在 attach 過程中請求檢索容器日誌 #26718
  • 允許用戶端與舊版伺服器通訊 #27745
  • 在用戶端通知使用者正在進行容器移除 #26074
  • Isolation 新增至 /info 端點 #26255
  • userns 新增至 /info 端點 #27840
  • 不允許在服務端點中同時請求一種以上的模式 #26643
  • 新增 /containers/create API 以更細粒度且更安全的方式指定掛載的能力 #22373
  • network lsvolume ls 新增 --format 旗標 #23475
  • 允許頂層 docker inspect 指令檢查任何類型的資源 #23614
  • 新增 --cpus 旗標以控制 docker rundocker create 的 CPU 資源,並將 NanoCPUs 新增至 HostConfig #27958
  • 允許在 docker rundocker create 中取消設定 --entrypoint #23718
  • 透過新增 docker imagedocker container 指令來重構 CLI 指令,以提高一致性 #26025
  • service ls 輸出中移除 COMMAND 欄位 #28029
  • docker events 新增 --format #26268
  • 允許在 docker node ps 上指定多個節點 #26299
  • docker images 輸出中的分數位數限制為 2 位 #26303
  • docker run 新增 --dns-option #28186
  • 將映像檔 ID 新增至容器提交事件 #28128
  • 將外部二進位檔案版本新增至 docker info #27955
  • docker info 的輸出中新增 Manager Addresses 資訊 #28042
  • docker images 新增一個新的參考篩選器 #27872

執行時期

  • 新增 --experimental 常駐程式旗標以啟用實驗性功能,而非將它們包含在單獨的建置中 #27223
  • 新增 --shutdown-timeout 常駐程式旗標,以指定在常駐程式退出前正常停止容器的預設超時時間(秒) #23036
  • 新增 --stop-timeout 以指定個別容器停止的超時值(秒) #22566
  • 新增一個新的常駐程式旗標 --userland-proxy-path,以允許配置使用者空間代理,而非使用來自 $PATH 的硬編碼 docker-proxy #26882
  • dockerddocker run 上新增布林旗標 --init,以使用 tini(一個殭屍程序收割 init 程序)作為 PID 1 #26061 #28037
  • 新增一個新的常駐程式旗標 --init-path,以允許配置 docker-init 二進位檔案的路徑 #26941
  • 新增對即時重新載入設定中不安全登錄檔的支援 #22337
  • 新增對 Windows 常駐程式上 storage-opt 大小的支援 #23391
  • 透過將其從用戶端移至常駐程式,提高 docker run --rm 的可靠性 #20848
  • 新增對 --cpu-rt-period--cpu-rt-runtime 旗標的支援,允許在核心中啟用 CONFIG_RT_GROUP_SCHED 時,容器執行即時執行緒 #23430
  • 修復 service tasks --filter 中的部分/全部篩選器問題 #24850
  • 允許 Engine 在使用者命名空間內執行 #25672
  • 修復使用 devicemapper graphdriver 時,裝置延遲移除與恢復裝置之間的競爭條件 #23497
  • 新增對 Windows 上 docker stats 的支援 #25737
  • 允許在 --userns=host 時使用 --pid=host--net=host #25771
  • (實驗性) 新增基礎 containerimagedaemon 操作的指標 (Prometheus) 輸出 #25820
  • 修復 docker statsNetworkDisabled=true 的問題 #25905
  • 新增對 Windows 上 docker top 的支援 #25891
  • 記錄已執行程序 (exec'd process) 的 PID #27470
  • 新增透過 getent 查詢使用者/群組的支援 #27599
  • 新增新的 docker system 指令,包含用於系統資源管理的 dfprune 子指令,以及 docker {container,image,volume,network} prune 子指令 #26108 #27525 / #27525
  • 修復透過將 devicemapper 的 xfs max_retries 設定為 0 而導致容器無法停止或殺掉的問題(ENOSPC 時) #26212
  • 修復 docker cp 在 CentOS 上使用 devicemapper 時無法複製到容器磁碟區目錄的問題 #28047
  • 推廣 overlay(2) graphdriver #27932
  • 新增 --seccomp-profile 常駐程式旗標,以指定覆蓋預設值的 seccomp 設定檔路徑 #26276
  • 修復常駐程式設定 --default-ulimitdocker inspect 中的 ulimits 問題 #26405
  • 為舊核心中建置時的 overlay 問題新增暫時解決方法 #28138
  • docker exec -t 上新增 TERM 環境變數 #26461
  • docker kill 時遵守容器的 --stop-signal 設定 #26464

Swarm 模式

  • 新增 secret 管理 #27794
  • 新增對範本化服務選項(主機名稱、掛載和環境變數)的支援 #28025
  • docker service inspect --pretty 的輸出中顯示端點模式 #26906
  • 透過縮短任務名稱中的服務 ID,使 docker service ps 的輸出更容易閱讀 #28088
  • 使 docker node ps 預設為目前節點 #25214
  • 為服務建立新增 --dns--dns-opt--dns-search#27567
  • docker service update 新增 --force #27596
  • docker service createdocker service update 新增 --health-*--no-healthcheck 旗標 #27369
  • docker service ps 新增 -q #27654
  • docker service ls 中顯示全域服務數量 #27710
  • docker service update 移除 --name 旗標。此旗標僅在 docker service create 上有效,因此已從 update 指令中移除 #26988
  • 修復工作節點因短暫網路問題而無法恢復的問題 #26646
  • 新增對健康感知負載平衡和 DNS 記錄的支援 #27279
  • docker service create 新增 --hostname #27857
  • docker service create 新增 --host,以及為 docker service update 新增 --host-add--host-rm #28031
  • docker service create/update 新增 --tty 旗標 #28076
  • 自動偵測、儲存並公開管理者所看到的節點 IP 位址 #27910
  • 管理者金鑰和 Raft 資料的靜態加密 #27967
  • docker service update 新增 --update-max-failure-ratio--update-monitor--rollback 旗標 #26421
  • 修復在容器內執行 docker swarm init 時位址自動探索的問題 #26457
  • (實驗性) 新增 docker service logs 指令以檢視服務日誌 #28089
  • 按摘要 (digest) 固定 docker service createupdate 的映像檔 #28173
  • docker node rm --forcedocker swarm leave --force 新增短旗標 (-f) #28196
  • 新增自訂 Raft 快照的選項 (--max-snapshots, --snapshot-interval) #27997
  • 如果已按摘要固定,則不要重新提取映像檔 #28265
  • Windows 的 Swarm 模式支援 #27838
  • 允許在服務上更新主機名稱 #28771
  • 支援 v2 插件 #29433
  • 為服務新增內容信任 #29469

Volume

  • 新增對磁碟區標籤的支援 #21270
  • 新增對按標籤篩選磁碟區的支援 #25628
  • docker volume rm 中新增 --force 旗標,以強制清除已刪除磁碟區的資料 #23436
  • 增強 docker volume inspect 以顯示建立磁碟區時使用的所有選項 #26671
  • 新增對本機 NFS 磁碟區解析主機名稱的支援 #27329

安全性

  • 修復容器內共用磁碟區的 SELinux 標籤 #23024
  • 禁止透過 apparmor 存取 /sys/firmware/** #26618

棄用

  • docker daemon 指令標記為棄用。常駐程式已移至單獨的二進位檔案 (dockerd),應改用該檔案 #26834
  • 棄用未版本化的 API 端點 #28208
  • 移除 Ubuntu 15.10 (Wily Werewolf) 作為支援的平台。Ubuntu 15.10 已達到生命週期終點 (EOL),不再接收更新 #27042
  • 移除 Fedora 22 作為支援的平台。Fedora 22 已達到 EOL,不再接收更新 #27432
  • 移除 Fedora 23 作為支援的平台。Fedora 23 已達到 EOL,不再接收更新 #29455
  • 棄用 docker pull 上的 repo:shortid 語法 #27207
  • 棄用 overlay 和 overlay2 儲存驅動程式中沒有 d_type 的後端檔案系統 #27433
  • 棄用 Dockerfile 中的 MAINTAINER #25466
  • 棄用端點 /images/jsonfilter 參數 #27872
  • 棄用設定重複的 Engine 標籤 #24533
  • 棄用 NetworkSettings 中的「頂層」網路資訊 #28437

1.12.6 (2017-01-10)

重要

Docker 1.12 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

注意

Docker 1.12.5 將正確驗證當您指定 --ipv6 選項時,是否提供了 IPv6 子網路,或是 IPAM 驅動程式是否能提供一個。

如果您目前在使用 --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

要解決此錯誤,請移除 --ipv6 旗標(以保留與 Docker 1.12.3 及更早版本相同的行為),或者提供一個 IPv6 子網路作為 --fixed-cidr-v6 旗標的值。

類似地,如果您在使用預設 IPAM 驅動程式建立網路時指定了 --ipv6 旗標,且未提供 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

要解決此問題,請移除 --ipv6 旗標(以保留與 Docker 1.12.3 及更早版本相同的行為),或者提供一個 IPv6 子網路作為 --subnet 旗標的值。

如果您使用支援 IPv6 子網路自動分配的外部 IPAM 驅動程式,網路建立將會成功。

執行時期

  • 修復 runC 權限提升 (CVE-2016-9962)

1.12.5 (2016-12-15)

重要

Docker 1.12 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

注意

Docker 1.12.5 將正確驗證當您指定 --ipv6 選項時,是否提供了 IPv6 子網路,或是 IPAM 驅動程式是否能提供一個。

如果您目前在使用 --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

要解決此錯誤,請移除 --ipv6 旗標(以保留與 Docker 1.12.3 及更早版本相同的行為),或者提供一個 IPv6 子網路作為 --fixed-cidr-v6 旗標的值。

類似地,如果您在使用預設 IPAM 驅動程式建立網路時指定了 --ipv6 旗標,且未提供 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

要解決此問題,請移除 --ipv6 旗標(以保留與 Docker 1.12.3 及更早版本相同的行為),或者提供一個 IPv6 子網路作為 --subnet 旗標的值。

如果您使用支援 IPv6 子網路自動分配的外部 IPAM 驅動程式,網路建立將會成功。

執行時期

  • 修復 stdin 關閉事件傳送上的競爭情況 #29424

網路

  • 修復舊版 docker 中網路以 --ipv6 建立且沒有 ipv6 --subnet 時,docker network ls 的崩潰問題 #29416

貢獻

  • 修復 Darwin 上的編譯 #29370

1.12.4 (2016-12-12)

重要

Docker 1.12 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

執行時期

  • 修復未移除磁碟區元資料的問題 #29083
  • 非同步關閉串流以防止保持容器鎖定 #29050
  • 修復新建立容器磁碟區的 SELinux 標籤 #29050
  • 移除主機名稱驗證 #28990
  • 修復 IO 競爭導致的死結 #29095 #29141
  • 如果容器正在重新啟動,則返回空的統計資訊 #29150
  • 修復磁碟區儲存鎖定 #29151
  • 確保 API 中的狀態碼一致 #29150
  • 修復 overlay2 中不正確的不透明目錄權限 #29093
  • 偵測插件內容並在 docker pull 時報錯 #29297

Swarm 模式

  • 拒絕未命名為 "default" 的 swarm spec #29152

網路

日誌記錄

  • 更新 syslog 日誌驅動程式 #29150

貢獻

  • 在 fedora 安裝前執行 "dnf upgrade" #29150
  • 將 build-date 新增回 RPM 套件 #29150
  • deb 套件檔名已變更以包含發行版名稱,以便區分不同的發行版代號 #27829

1.12.3 (2016-10-26)

重要

Docker 1.12 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 Docker 服務;

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

執行時期

  • 修復容器中的環境能力使用 (CVE-2016-8867) #27610
  • 防止 Windows 的 libcontainerd 出現死結 #27136
  • 修復 CopyFileWithTar 中的錯誤報告 #27075
  • 當容器重新啟動時,將健康狀態重設為 starting #27387
  • 正確處理儲存目錄中的共用掛載傳播 #27609
  • 修復 docker exec #27610
  • 修復與 containerd 事件日誌的向後相容性 #27693

Swarm 模式

  • 修復 restart-policy 的轉換 #27062

網路

日誌記錄

  • 更新 fluent-logger-golang 至 v1.2.1 #27474

貢獻

  • 更新 armhf ubuntu-trusty 的 buildtags #27327
  • 將 AppArmor 新增至 armhf 的 runc buildtags #27421

1.12.2 (2016-10-11)

重要

Docker 1.12 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 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 的 exec 形式 #26208

網路

  • 修復 armv5 上的常駐程式啟動崩潰 #24315

Swarm 模式

  • 如果同一連接埠在 service createservice update 上被發佈兩次,則產生錯誤 docker/swarmkit#1495

貢獻

  • 更新 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 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

用戶端

  • node inspect --pretty 中新增 Joined at 資訊 #25512
  • 修復 service inspect 的崩潰 #25454
  • 修復導致 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

網路

  • 修復導致容器無法透過 Swarm 模式中 Docker overlay 驅動程式的主機名稱進行存取的問題 #25603 #25648
  • 修復服務在已發佈連接埠上出現隨機網路問題 #25603
  • 修復縮減和擴展服務後服務間通訊不可靠的問題 #25603
  • 修復移除節點上的所有任務並將其加回後,導致與其他服務斷開連線的問題 #25603
  • 修復啟動失敗的任務導致競爭,進而導致 network xxx not found 錯誤並遮蔽實際錯誤的問題 #25550
  • 放寬對使用非 RFC 2782 格式 SRV 記錄的外部服務的 SRV 記錄驗證 #25739

插件 (實驗性)

  • 使常駐程式事件監聽插件生命週期事件 #24760
  • 在啟用插件前檢查插件狀態 #25033
  • plugin rm 時從檔案系統移除插件根目錄 #25187
  • 防止安裝多個插件時出現死結 #25384

執行時期

  • 在常駐程式日誌中遮罩加入權杖 (join tokens) #25346
  • 修復 docker ps --filter 導致結果不再按建立時間排序的問題 #25387
  • 修復各種崩潰 #25053

安全性

  • /proc/timer_list 新增至遮罩路徑清單,以防止來自主機的資訊洩漏 #25630
  • 允許 systemd 僅使用 --cap-add SYS_ADMIN 執行,而無需額外新增 --cap-add DAC_READ_SEARCH 或停用 seccomp 篩選 #25567

Swarm

  • 修復 swarm 在失去法定人數後卡在選舉新領導者的問題 #25055
  • 修復領導者故障轉移後不必要的容器重新排程 #25017
  • 將 swarm 根 CA 金鑰變更為 P256 曲線 swarmkit#1376
  • 允許從 swarm 中強制移除節點 #25159
  • 修復節點離開 swarm 時的連線洩漏 swarmkit/#1277
  • 將 swarm 憑證回溯一小時以容忍更多時鐘偏移 swarmkit/#1243
  • 避免在有大量不可排程任務時使用高 CPU swarmkit/#1287
  • 修復全域任務無法啟動的問題 swarmkit/#1295
  • 垃圾回收 raft 日誌 swarmkit/#1327

Volume

  • 在常駐程式重新啟動後持久化本機磁碟區選項 #25316
  • 修復磁碟區卸載時未傳回掛載 ID 的問題 #25333
  • 修復磁碟區掛載可能意外建立繫結掛載的問題 #25309
  • docker service create --mount type=bind,... 現在正確驗證原始路徑是否存在,而不是建立它 #25494

1.12.0 (2016-07-28)

重要

Docker 1.12.0 附帶了適用於基於 rpm 的安裝(包括 RHEL、Fedora、CentOS 和 Oracle Linux 7)的更新版 systemd 單元檔案。從舊版本的 Docker 升級時,升級過程可能不會自動安裝更新版本的單元檔案,或者如果在以下情況下無法啟動 docker service

  • systemd 單元檔案 (/usr/lib/systemd/system/docker.service) 包含本機變更,或
  • 存在 systemd drop-in 檔案,且在 ExecStart 指令中包含 -H fd://

啟動 docker service 將會產生錯誤

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 附帶的版本
  • 如果存在,請從 /usr/lib/systemd/system/docker.service 檔案中移除 Requires=docker.socket 指令
  • ExecStart 指令中移除 -H fd://(在主單元檔案和任何現有的 drop-in 檔案中皆需移除)。

進行這些變更後,執行 sudo systemctl daemon-reloadsudo systemctl restart docker 以重新載入變更並(重新)啟動 docker 常駐程式。

重要

使用 Docker 1.12,Linux docker 安裝現在有兩個額外的二進位檔案;dockerddocker-proxy。如果您有安裝 docker 的指令碼,請務必相應地更新它們。

建置器

  • 新的 HEALTHCHECK Dockerfile 指令,以支援使用者定義的健康檢查 #23218
  • 新的 SHELL Dockerfile 指令,以在使用 Dockerfile 中的指令 shell 形式時指定預設 shell #22489
  • 新增 #escape= Dockerfile 指示詞,以支援 Dockerfile 中檔案路徑的平台特定解析 #22268
  • 新增對 .dockerignore 中註解的支援 #23111
  • 對 Dockerfile 中的 UTF-8 支援 #23372
  • 如果存在,請跳過 Dockerfile.dockerignore 中的 UTF-8 BOM 位元組 #23234
  • 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
  • docker load 上向使用者提供更多資訊 #23377
  • 始終儲存有關推送到登錄檔映像檔的摘要元資料 #23996

日誌記錄

  • Syslog 日誌驅動程式現在支援 DGRAM sockets #21613
  • docker logs 新增 --details 選項以同時顯示日誌標籤 #21889
  • 啟用 syslog 記錄器以存取 env 和 labels #21724
  • 額外的 syslog-format 選項 rfc5424micro,以允許 syslog 時間戳記中的微秒解析度 #21844
  • 建立容器時繼承常駐程式日誌選項 #21153
  • 從日誌訊息標籤中移除 docker/ 前綴,並將其替換為 {{.DaemonName}},以便使用者可以選擇變更前綴 #22384

網路

  • 使用 IPVS 的內建基於虛擬 IP 的內部和 ingress 負載平衡 #23361
  • 使用 ingress overlay 網路的路由網格 (Routing Mesh) #23361
  • 使用加密控制平面和資料平面進行安全的多主機 overlay 網路 #23361
  • MacVlan 驅動程式已脫離實驗階段 #23524
  • network ls 新增 driver 篩選器 #22319
  • 新增 network 篩選器至 docker ps --filter #23300
  • createrunnetwork connect 新增 --link-local-ip 旗標,以指定容器的連結本機位址 #23415
  • 新增網路標籤篩選器支援 #21495
  • 在 Swarm 模式下移除對 Overlay 網路外部 KV-Store 的相依性 #23361
  • 新增容器短 ID 作為預設網路別名 #21901
  • run 選項 --dns--net=host 不再互斥 #22408
  • 修復重新命名具有產生名稱的容器時的 DNS 問題 #22716
  • 允許同時使用 network inspect -f {{.Id}}network inspect -f {{.ID}} 來解決 inspect 輸出不一致的問題 #23226

插件 (實驗性)

  • 新增新的 plugin 指令來管理插件,包含 installenabledisablerminspectset 子指令 #23446

遠端 API (v1.24) 與用戶端

  • 將二進位檔案分割為兩個:docker(用戶端)和 dockerd(常駐程式) #20639
  • docker images --filter 新增 beforesince 篩選器 #22908
  • docker search 新增 --limit 選項 #23107
  • docker search 新增 --filter 選項 #22369
  • 將安全性選項新增至 docker info 輸出 #21172 #23520
  • 將不安全的登錄檔新增至 docker info 輸出 #20410
  • 擴充 Docker 授權以包含 TLS 使用者資訊 #21556
  • devicemapper:透過 docker info 公開最小精簡集區可用空間 #21945
  • 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 常駐程式旗標),並在 createrun 上使用 --runtime 進行選擇 #22983
  • 用於 Linux 4.0+ 的新 overlay2 graphdriver,支援多個底層目錄 #22126
  • 新的載入/儲存映像檔事件 #22137
  • 新增對透過 systemd 重新載入常駐程式設定的支援 #22446
  • 新增 btrfs 的磁碟配額支援 #19651
  • 新增 zfs 的磁碟配額支援 #21946
  • 新增對 docker run --pid=container:<id> 的支援 #22481
  • 使預設 seccomp 設定檔與選定功能對齊 #22554
  • 當常駐程式重新載入其設定時,新增一個 daemon reload 事件 #22590
  • 在 pprof 分析器中新增 trace 能力,以二進位形式顯示執行軌跡 #22715
  • 新增一個 detach 事件 #22898
  • 新增對使用 --sysctl 設定 sysctl 的支援 #19265
  • createrun 新增 --storage-opt 旗標,允許設定 devicemapper 的 size #19367
  • 新增預設值為 -500--oom-score-adjust 常駐程式旗標,使常駐程式較不容易在容器前被殺掉 #24516
  • 取消棄用 runbuildcreateupdate--cpu-shares 的短別名 -c #22621
  • 防止在 eCryptfs 掛載上使用 aufs 和 overlay graphdrivers #23121
  • 修復 tmpfs 掛載順序的問題 #22329
  • 建立的容器不再列在 docker ps -a -f exited=0#21947
  • 修復容器卡在「移除中」(Removal In Progress) 狀態的問題 #22423
  • 修復在 run/create 上未指定指令時返回 HTTP 500 而非 400 的錯誤 #22762
  • 修復 --detach-keys 的錯誤,導致符合 detach 鍵字首的輸入未被保留 #22943
  • 使用 --privileged 模式時,現在已停用 SELinux 標籤 #22993
  • 如果掛載到容器中,/etc/hosts/etc/resolv.conf/etc/hostname 不再進行 SELinux 重新標籤 #22993
  • 修復 --tmpfs 行為在掛載選項方面的不一致 #22438
  • 修復常駐程式在啟動時掛起的問題 #23148
  • 忽略 SIGPIPE 事件,以防止 journald 重新啟動在某些情況下導致 docker 崩潰 #22460
  • 容器在錯誤時不會從統計資訊清單中移除 #20835
  • 修復常駐程式重新啟動時的 on-failure 重新啟動原則 #20853
  • 修復容器使用另一個容器的網路時 stats 的問題 #21904

Swarm 模式

  • 新增 swarm 指令,用於管理 swarm,包含 initjoinjoin-tokenleaveupdate 等子指令 #23361 #24823
  • 新增 service 指令,用於管理整個 swarm 的服務,包含 createinspectupdatermps 等子指令 #23361 #25140
  • 新增 node 指令,用於管理節點,包含 acceptpromotedemoteinspectupdatepslsrm 等子指令 #23361 #25140
  • (實驗性質)新增 stackdeploy 指令,用於管理並部署多服務應用程式 #23522 #25140

Volume

  • 新增對本機與全域磁碟區範圍(volume scopes)的支援(類比網路範圍) #22077
  • 允許磁碟區驅動程式提供 Status 欄位 #21006
  • 新增對磁碟區名稱/驅動程式的過濾器支援 #21361
  • 掛載/卸載操作現在會接收一個不透明 ID,讓磁碟區驅動程式能區分不同的呼叫者 #21015
  • 修復在特定極端情況下無法移除磁碟區的問題 #22103
  • Windows:啟用主機路徑自動建立,以與 Linux 保持一致 #22094

棄用

  • 環境變數 DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASEDOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE 已分別重新命名為 DOCKER_CONTENT_TRUST_ROOT_PASSPHRASEDOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE #22574
  • 移除已棄用的 syslog-taggelf-tagfluentd-tag 日誌選項,改用更通用的 tag 選項 #22620
  • 移除在 API 容器啟動時傳遞 HostConfig 的棄用功能 #22570
  • 移除 docker tag 上已棄用的 -f/--force 旗標 #23090
  • 移除已棄用的 /containers/<id|name>/copy 端點 #22149
  • 移除 docker ps 上已棄用的 --since--before 旗標 #22138
  • 棄用舊版 3 引數形式的 docker import #23273

1.11.2 (2016-05-31)

網路

  • 修復 overlay 網路在非正常重啟期間產生的過期端點問題 (#23015)
  • 修復 docker inspect/ps/port 可能回報錯誤連接埠的問題 (#22997)

執行時期

  • 修復執行 docker build 時可能發生的崩潰 (panic) 問題 (#23032)
  • 修復 --user 參數的解讀問題 (#22998)
  • 修復導致容器統計數據無法正確回報的錯誤 (#22955)
  • 修復 daemon 重啟後容器無法重啟的問題 (#22947)
  • 修復在 Ubuntu 16.04 上執行 32 位元二進位檔案時的問題 (#22922)
  • 修復刪除映像檔與 attach 容器時可能發生的死鎖 (#22918)
  • 修復若容器依賴於容器化叢集儲存(cluster store),在 daemon 重啟後容器無法啟動的問題 (#22561)
  • 修復在 CentOS 上使用 devicemapper 時導致 docker ps 卡住的問題 (#22168, #23067)
  • 修復在使用 devicemapper 時無法 docker exec 進入容器的錯誤 (#22168, #23067)

1.11.1 (2016-04-26)

發布

  • 修正 schema2 資訊清單媒體類型為 application/vnd.docker.container.image.v1+json (#21949)

文件

  • 補上 1.11.0 變更所缺失的 API 文件 (#22048)

建置器

  • 將透過參數傳遞給 docker build 的標籤(label),視為處理後的 Dockerfile 結尾處的隱含 LABEL 指令 (#22184)

網路

  • 修復轉發 DNS 查詢時發生的崩潰問題 (#22261)
  • 修復使用使用者定義網路時,作業系統執行緒可能進入錯誤網路命名空間的問題 (#22261)

執行時期

  • 修復無法透過設定檔重新載入標籤設定的錯誤 (#22299)
  • 修復導致掛載 /var/run 的容器會阻止其他容器被移除的迴歸問題 (#22256)
  • 修復無法同時更新 memory-swapmemory 值的問題 (#22255)
  • 修復 1.11.0 的迴歸問題,即若未提供 serveraddress/auth 端點不會初始化該值 (#22254)
  • 新增取消排程重啟時對容器暫存檔的清理動作 (#22237)
  • 移除未指定重啟原則時出現的嚇人錯誤訊息 (#21993)
  • 修復透過 json 規範啟動外掛程式(plugins)時發生的崩潰問題 (#22191)
  • 修正重啟延遲邏輯,若容器執行至少 10 秒,則正確重置延遲時間 (#22125)
  • 移除容器重啟被取消時出現的錯誤訊息 (#22123)
  • 修復 dockerdocker exec 後無法正確清理的問題 (#22121)
  • 修復執行併發 docker stats 指令時可能發生的崩潰問題 (#22120)`
  • 撤銷對不存在的主機目錄自動建立功能的棄用 (#22065)
  • 隱藏 daemon 關閉時誤導性的 RPC 錯誤 (#22058)

1.11.0 (2016-04-13)

重要

從 Docker 1.11 開始,Linux Docker 安裝由 4 個二進位檔案組成(dockerdocker-containerddocker-containerd-shimdocker-runc)。若您的指令碼依賴於 docker 作為單一靜態二進位檔案,請務必更新它們。否則與 daemon 的互動保持不變,其他二進位檔案的使用應是透明的。Windows Docker 安裝仍為單一二進位檔案:docker.exe

建置器

  • 修復 Docker 在處理 WORKDIR 指令時未正確使用 uid/gid 的錯誤 (#21033)
  • 修復使用 userns 時複製操作未正確使用 uid/gid 的錯誤 (#20782, #21162)

用戶端

  • 安全選項已棄用使用 : 分隔符,應改用 = (#21232)
  • 客戶端使用者代理(user agent)現在會在 pullbuildpushloginsearch 操作時傳遞給 registry (#21306, #21373)
  • 允許透過 API 分別設定網域名稱(Domainname)和主機名稱(Hostname) (#20200)
  • Docker info 若無法偵測核心版本或作業系統,現在會警告使用者 (#21128)
  • 修復 docker stats --no-stream 輸出可能全為 0 的問題 (#20803)
  • 修復某些新啟動的容器不會出現在執行中的 docker stats 指令中的錯誤 (#20792)
  • linux-cgo 終端機不再啟用後處理 (Post processing) (#20587)
  • Docker 學會了如何使用 SOCKS 代理 (#20366, #18373)
  • Docker 現在支援外部憑證儲存庫 (#20107)
  • docker ps 現在支援顯示掛載在容器內部的磁碟區清單 (#20017)
  • docker info 現在也會回報 Docker 根目錄(root directory)的位置 (#19986)
  • Docker 現在禁止使用空使用者名稱登入(空白會被修剪) (#19806)
  • Docker 事件屬性現在會按鍵值排序 (#19761)
  • docker ps 不再顯示已停止容器的匯出埠(exported port) (#19483)
  • Docker 若 save/export 指令失敗,現在會自行清理 (#17849)

發布

  • 修復提取(pull)0 層映像檔時發生的崩潰問題 (#21222)
  • 修復推送(push)至配置錯誤的權杖服務(token service)的 registry 時可能發生的崩潰問題 (#21212)
  • 執行受信任的推送時,所有第一層委派角色(delegation roles)現在都會被簽署 (#21046)
  • 新增 registry 的 OAuth 支援 (#20970)
  • docker login 現在使用 docker/distribution 中的實作來處理權杖 (#20832)
  • docker login 將不再提示輸入電子郵件 (#20565)
  • 若無基本驗證憑證,Docker 現在會回退至 registry V1 (#20241)
  • Docker 現在會在網路錯誤/超時後,嘗試從上次中斷的地方恢復層下載 (#19840)
  • 修正跨儲存庫(cross-repository)推送時產生的資訊清單媒體類型 (#19509)
  • 修復若啟用 Content Trust,在提取映像檔時請求額外推送憑證的問題 (#20382)

日誌記錄

  • 修復 journald 日誌驅動程式中的競爭條件(race) (#21311)
  • Docker syslog 驅動程式現在在發出日誌時使用 RFC-5424 格式 (#20121)
  • Docker GELF 日誌驅動程式現在允許透過 gelf-compression-typegelf-compression-level 選項指定壓縮演算法與層級 (#19831)
  • Docker daemon 學會了透過 --raw-logs 選項輸出無顏色的日誌 (#19794)
  • Windows 平台上的 Docker 現在包含一個名為 etwlogs 的 ETW (Event Tracing in Windows) 日誌驅動程式 (#19689)
  • Journald 日誌驅動程式學會了如何處理標籤 (#19564)
  • Fluentd 日誌驅動程式學會了以下選項:fluentd-addressfluentd-buffer-limitfluentd-retry-waitfluentd-max-retriesfluentd-async-connect (#19439)
  • Docker 學會了透過新的 gcplogs 日誌驅動程式將日誌發送到 Google Cloud。 (#18766)

其他

  • 當使用 docker save 同時儲存連結的映像檔時,隨後的 docker load 將正確還原其父/子關係 (#21385)
  • 新增了對 OpenBSD 建置 Docker CLI 的支援 (#21325)
  • 現在可以在建立網路、磁碟區和映像檔時套用標籤 (#21270)
  • dockremap 現在建立為系統使用者 (#21266)
  • 修復幾個回應主體洩漏(response body leaks) (#21258)
  • 當 Docker 作為 systemd 服務執行時,現在會正確管理其處理程序的 cgroups (#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 叢集中啟動容器時出現的「error creating vxlan interface」 (#21671)
  • docker network inspect 現在會回報所有端點,無論其是否有作用中的容器 (#21160)
  • 新增 MacVlan 和 IPVlan 網路驅動程式的實驗性支援 (#21122)
  • docker network ls 的輸出現在按網路名稱排序 (#20383)
  • 修復 Docker 允許使用保留名稱 default 建立網路的錯誤 (#19431)
  • docker network inspect 回傳網路是否為內部(internal)網路 (#19357)
  • 建立網路時透過明確選項控制 IPv6 (docker network create --ipv6)。這在 docker network inspect 中顯示為新的 EnableIPv6 欄位 (#17513)
  • 嵌入式 DNS 伺服器支援 AAAA 記錄(又稱 IPv6 服務發現) (#21396)
  • 修正不將 docker 網域 IPv6 查詢轉發至外部伺服器 (#21396)
  • 嵌入式 DNS 伺服器支援多個 A/AAAA 記錄用於 DNS 輪詢(Round robin) (#21019)
  • 修正 daemon 非正常重啟後端點計數不一致的問題 (#21261)
  • 將公開連接埠與連接埠對應選項的所有權從 Endpoint 移至 Sandbox (#21019)
  • 修正主機配置 ipv6.disable=1 時導致 docker 重載失敗的錯誤 (#21019)
  • 新增內建 nil IPAM 驅動程式 (#21019)
  • 修正 iptables.Exists() 邏輯中的錯誤 #21019
  • 修正使用 overlay 網路時的 Veth 介面洩漏 (#21019)
  • 修正關閉期間刪除網路導致 docker 重載失敗的錯誤 (#20214)
  • 確保 firewalld 重載時會重新建立 iptables 鏈 (#20419)
  • 允許在配置重載期間傳遞全域資料儲存庫(global datastore) (#20419)
  • 針對匿名容器,將別名用於 IP 到名稱的映射,例如:DNS PTR 記錄 (#21019)
  • 修復刪除 /etc/hosts 檔案項目時發生的崩潰 (#21019)
  • 從容器網路命名空間(net namespace)來源轉發 DNS 查詢 (#21019)
  • 修復在 daemon 重載時保留 bridge 網路內部模式設定的問題 ([#21780] (https://github.com/docker/docker/pull/21780))
  • 修復在 daemon 重載時保留 IPAM 驅動程式選項設定的問題 ([#21914] (https://github.com/docker/docker/pull/21914))

插件

  • 修復每次列舉外掛程式(plugins)時發生的檔案描述符洩漏 (#20686)
  • 修復 Authz 外掛程式在處理大量數據時損壞酬載主體(payload body)的問題 (#20602)

執行時期

  • 修復在參數無效的容器啟動後進行清理時發生的崩潰 (#21716)
  • 修復事件計時器過早停止的競爭條件 (#21692)
  • 修復層儲存庫(layer store)中的競爭條件,可能導致映射損壞並使處理程序崩潰 (#21677)
  • 取消對掛載主機目錄自動建立的棄用。此功能在 Docker 1.9 (#21666) 中被標記為棄用,但經決定這對向後相容性影響過大,因此決定保留該功能。
  • 容器現在可以在啟用 userns 時共用 NET 和 IPC 命名空間 (#21383)
  • docker inspect <image-id> 現在會公開 rootfs 層 (#21370)
  • Docker Windows 獲得了最小化的 top 實作 (#21354)
  • Docker 學會了在容器因條件無法啟動時回報有問題的 exe (#21345)
  • 使用 device mapper 的 Docker 現在若無 udev sync 將拒絕執行 (#21097)
  • 修復 Docker 在配置重載時未驗證設定檔的錯誤 (#21089)
  • 修復若初始啟動失敗,attach 時會發生的卡住問題 (#21048)
  • 修復 daemon 設定檔中 registry 服務選項未被正確納入考量的問題 (#21045)
  • 修復 exec 和 resize 操作之間的競爭條件 (#21022)
  • 修復過濾 Docker 事件時奈秒(nanoseconds)未被正確考慮的問題 (#21013)
  • 修正傳遞 64 位元組 ID 給 Docker 指令時的處理方式 (#21002)
  • Docker 現在成功刪除網路後會回傳 204 (即 http.StatusNoContent) 代碼 (#20977)
  • 修復若即將被殺死的處理程序已自行退出,daemon 會無限期等待的錯誤 (#20967
  • devmapper 驅動程式學會了 dm.min_free_space 選項。若映射設備的剩餘空間達到傳遞的值,將禁止建立新設備。 (#20786)
  • Docker 現在可以透過 --security-opt=no-new-privileges 旗標防止容器內的處理程序獲得新權限 (#20727)
  • --device 選項啟動容器現在會正確解析符號連結 (#20684)
  • 修復 Docker 配置重載,使其僅變更給定設定檔中存在的值 (#20604)
  • Docker 現在允許在 --net=host 時透過 --hostname 旗標設定容器主機名稱 (#20177)
  • Docker 現在允許在執行 --userns-remap 時執行特權容器,若同時指定 --privileged 和新的 --userns=host 旗標 (#20111)
  • 修復 Docker 在崩潰後重啟時無法正確清理舊容器的問題 (#19679)
  • Docker 若無法識別設定檔中的設定鍵,現在會報錯 (#19517)
  • 修復 daemon 啟動時,若容器依賴於在容器內執行的外掛程式,容器載入失敗的問題 (#19500)
  • docker update 學會了如何變更容器重啟原則 (#19116)
  • docker inspect 現在也回傳一個新的 State 欄位,以人類可讀的方式包含容器狀態(例如:createdrestartingrunningpausedexiteddead)(#18966)
  • Docker 學會了透過 pids-limit 旗標限制容器內的活動 PID(即處理程序)數量。注意:這需要在核心配置中設定 CGROUP_PIDS=y。 (#18697)
  • docker load 現在有 --quiet 選項可抑制載入輸出 (#20078)
  • 修復 IPv6 對等節點(peers)鄰居發現中的錯誤 (#20842)
  • 修復若容器以無效選項啟動時,清理期間發生的崩潰 (#21802)
  • 修復終端機關閉時無法停止容器的情況 (#21840)

安全性

  • 具有 pcp_pmcd_t selinux 類型的物件被賦予了對 /var/lib/docker(/.*)? 的管理權限 (#21370)
  • restart_syscallcopy_file_rangemlock2 加入預設 seccomp 設定檔中允許的呼叫清單 (#21117, #21262)
  • sendrecvx32 被新增至預設 seccomp 設定檔中允許的系統呼叫與架構清單 (#19432)
  • Docker Content Trust 現在請求伺服器執行快照簽署 (#21046)
  • 使用 YubiKeys 進行 Content Trust 簽署的支援已脫離實驗性質 (#21591)

磁碟區

  • docker volume ls 的輸出現在按磁碟區名稱排序 (#20389)
  • 本機磁碟區現在可以接受類似 unix mount 工具的選項 (#20262)
  • 修復無法使用單字母目錄名稱作為磁碟區來源的問題 (#21106)
  • docker run -v 現在接受新的 nocopy 旗標。這告訴 runtime 不要將容器路徑內容複製到磁碟區中(這是預設行為) (#21223)

1.10.3 (2016-03-10)

執行時期

  • 修復 Docker 客戶端以 "Unrecognized input header" 錯誤退出的問題 #20706
  • 修復若 Exec 同時以 AttachStdinDetach 啟動時 Docker 退出問題 #20647

發布

  • 修復並行推送多個共用相同層的映像檔至同一個儲存庫時的崩潰問題 #20831
  • 修復推送映像檔至使用配置錯誤權杖服務的 registry 時發生的崩潰 #21030

外掛程式系統(Plugin system)

  • 修復 SELinux 啟用時阻止磁碟區外掛程式啟動的問題 #20834
  • 防止若磁碟區外掛程式對 Get 請求回傳空回應時 Docker 退出 #20682
  • 修復若外掛程式發生錯誤時,外掛程式系統洩漏檔案描述符的問題 #20680

安全性

  • 修復 docker build 期間 linux32 模擬失敗的問題 #20672 這是由於 personality 系統呼叫被預設 seccomp 設定檔封鎖所致。
  • 修復 Oracle XE 10g 在容器中啟動失敗的問題 #20981 這是由於 ipc 系統呼叫被預設 seccomp 設定檔封鎖所致。
  • 修復使用者命名空間(user namespaces)在 Linux From Scratch 上無法運作的問題 #20685
  • 修復若啟用 userns,且 subuidsubgid 檔案包含註解時,阻止 daemon 啟動的問題 #20725

1.10.2 (2016-02-22)

執行時期

  • 防止 systemd 在其配置重載時刪除容器的 cgroups #20518
  • 修復掛載 /dev/mqueue 時忽略 --read-only 以解決 SELinux 問題 #20333
  • 修復使用 userns 時在 docker cp 期間使用的 chown 權限 #20446
  • 修復所有布林值預設為 true 的配置載入問題 #20471
  • 修復 docker logs -f 的偶發崩潰 #20522

發布

  • 若刪除失敗,保留層參考以避免嚴重不一致狀態 #20513
  • 優雅地處理取消遷移(migration)時的一個極端情況 #20372
  • 修復壓縮數據上的 docker import #20367
  • 修復遷移期間 tar-split 檔案損壞,導致稍後 docker push 和 docker save 失敗 #20458

網路

  • 修復若嵌入式 DNS 被發送垃圾數據時的 daemon 崩潰 #20510

磁碟區

  • 修復具有相同名稱的多個磁碟區參考問題 #20381

安全性

  • 修復潛在的快取損壞和委派衝突問題 #20523

1.10.1 (2016-02-11)

執行時期

  • 遷移嚴重失敗時不要停止 daemon #20156
  • 修復遷移至內容可尋址(content-addressable)映像檔的各種問題 #20058
  • 修復 ZFS 使用者命名空間權限錯誤 #20045
  • 不要將 /dev/mqueue 從主機洩漏給所有容器,保持其為容器特定 #19876 #20133
  • 修復 docker ps --filter before=... 在未提供 -a 旗標時顯示已停止容器的問題 #20135

安全性

  • 修復阻止 docker 事件與授權外掛程式正確運作的問題 #20002

發布

  • 新增額外驗證並防止上傳無效數據至 registries #20164
  • 修復阻止映像檔參考主機名稱中使用大寫字元的迴歸問題 #20175

網路

  • 修復 firewalld 存在時使用者定義網路的嵌入式 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 旗標至 docker images 指令 #17692
  • 允許在檔案中設定 daemon 配置,並透過 SIGHUP 訊號熱重載它 #18587
  • 更新 docker 事件以包含更多後設數據與事件類型 #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 旗標至 attachrunstartexec 指令,以覆蓋從容器中分離的預設按鍵序列 #15666
  • 新增 --shm-size 旗標至 runcreatebuild 以設定 /dev/shm 的大小 #16168
  • docker info 中顯示執行中、已停止和已暫停的容器數量 #19249
  • docker info 中顯示 OSTypeArchitecture #17478
  • 新增 --cgroup-parent 旗標至 daemon 以設定所有容器的 cgroup 父層 #19062
  • 新增 -L 旗標至 docker cp 以跟隨符號連結 #16613
  • 新增 status=dead 過濾器至 docker ps #17908
  • 變更 docker run 退出代碼以區分 runtime 與應用程式錯誤 #14012
  • 增強 docker events --since--until 以支援奈秒和時區 #17495
  • 新增 --all/-a 旗標至 stats 以包含執行中與已停止的容器 #16742
  • 將預設 cgroup-driver 變更為 cgroupfs #17704
  • 使用 build -t 標記映像檔時發出 "tag" 事件 #17115
  • 啟動 daemon 時,盡力對連結容器進行啟動順序安排 #18208
  • 新增在 build 時增加多個標籤的能力 #15780
  • 允許對任何 url 進行 OPTIONS 請求,從而修復 CORS 問題 #19569
  • 修復 docker build 上的 --quiet 旗標,使其真正安靜 #17428
  • 修復 docker images --filter dangling=false,現在顯示所有非懸空映像檔 #19326
  • 修復導致自動重啟在重啟時關閉的競爭條件 #17629
  • 識別 GPFS 檔案系統 #19216
  • 修復阻止啟動容器的隱晦錯誤 #19751
  • 禁止在容器重啟期間執行 exec #19722
  • devicemapper:增加 --storage-opt dm.basesize 現在會在 daemon 重啟時增加基礎設備大小 #19123

安全性

  • 新增 --userns-remap 旗標至 daemon 以支援使用者命名空間(先前為實驗性質) #19187
  • 新增 --security-opt 中自訂 seccomp 設定檔的支援 #17989
  • 新增預設 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
  • 支援網路範圍別名(network-scoped alias),使用 run 上的 --net-aliasnetwork connect 上的 --alias #19242
  • runnetwork connect 上新增 --ip--ip6 以支援網路中容器的自訂 IP 位址 #19001
  • 新增 --ipam-optnetwork 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 外掛程式進行能力交換(Capability exchange) #18775
  • 新增 --forcenetwork disconnect 以強制中斷容器與網路的連線 #19317
  • 支援使用內建 overlay 驅動程式進行多主機網路連線,適用於所有引擎支援的核心:3.10+ #18775
  • --link 現在在 docker run 上支援使用者定義網路中的容器 #19229
  • 增強 docker network rm 以允許移除多個網路 #17489
  • network inspect 中包含容器名稱 #17615
  • network inspect 中包含使用者定義網路自動產生的子網(subnets) #17316
  • 新增 --filter 旗標至 network ls 以隱藏預定義網路 #17782
  • 新增對已停止容器進行網路連線/中斷連線的支援 #18906
  • 新增網路 ID 至容器 inspect #19323
  • 修復 Docker 無法在兩個或多個預設路由下啟動的 MTU 問題 #18108
  • 修復容器重複 IP 位址的問題 #18106
  • 修復有時阻止 docker 建立 bridge 網路的問題 #19338
  • 使用 --net=host 時,不要替換 127.0.0.1 名稱伺服器 #19573

日誌記錄

  • 適用於 Splunk 的新日誌驅動程式 #16488
  • 新增透過 TCP+TLS 進行 syslog 的支援 #18998
  • 增強 docker logs --since--until 以支援奈秒和時間 #17495
  • 增強 AWS 日誌以自動偵測區域 #16640

磁碟區

  • 新增設定磁碟區掛載傳播模式(mount propagation mode)的支援 #17034
  • 新增 lsinspect 端點至磁碟區外掛程式 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 服務檔案中設定 TasksMax 和 LimitNPROC #19391

棄用項目

  • 移除 LXC 支援。LXC 驅動程式在 Docker 1.8 中被棄用,現已被移除 #17700
  • 移除 --exec-driver daemon 旗標,因為它不再使用 #17700
  • 移除舊的已棄用單短橫線長 CLI 旗標(例如 -rm;請改用 --rm#17724
  • 棄用 API 容器啟動時的 HostConfig #17799
  • 棄用新到 EOL 的 Linux 發行版 Docker 套件:Fedora 21 和 Ubuntu 15.04 (Vivid) #18794, #18809
  • 棄用 docker tag 的 -f 旗標 #18350

1.9.1 (2015-11-21)

執行時期

  • 若映像檔無法還原,不要阻止 daemon 啟動 (#17695)
  • 強制 daemon 關閉/初始化時卸載 IPC 掛載 (#17539)
  • 將 IPC 卸載錯誤轉為警告 (#17554)
  • 修復 docker stats 效能迴歸 (#17638)
  • 澄清若 --log-driver=nonedocker logs 的晦澀錯誤訊息 (#17767)
  • 修復罕見的崩潰 (#17639, #17634, #17703)
  • 修復點前綴檔案的 opq whiteouts 問題 (#17819)
  • devicemapper:基於效能考量,嘗試預設為 xfs 而非 ext4 (#17903, #17918)
  • devicemapper:修復 docker info 中顯示的 fs (#17974)
  • selinux:僅在使用者透過 z 選項請求時才重新標記 (#17450, #17834)
  • 正規化名稱時不要進行網路呼叫 (#18014)

用戶端

  • 修復 windows 上的 docker login (#17738)
  • 修復未連線至 daemon 時 docker inspect 的輸出錯誤 (#17715)
  • 修復 docker inspect -f {{.HostConfig.Dns}} somecontainer (#17680)

建置器

  • 修復 ADD/COPY 中符號連結行為的迴歸 (#17710)

網路

  • 允許將網路 ID 作為 --net 的參數傳遞 (#17558)
  • 修正 host 網路連線至主機,並防止與主機中斷連線 (#17476)
  • 修正若閘道 IP 落在 IP 範圍內且 IP 範圍不是網路中第一個區塊時的 --fixed-cidr 問題 (#17853)
  • 還原預設 bridge 網路中從 MAC 位址產生 IPv6 的決定論 (#17890)
  • 僅允許對 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)
  • inspect 映像檔現在回傳標籤 (#13185)
  • 新增容器大小資訊至 docker inspect (#15796)
  • 新增 RepoTagsRepoDigests 欄位至 /images/{name:.*}/json (#17275)
  • 從 API 移除已棄用的 /container/ps 端點 (#15972)
  • 發送並記錄 /exec/<name>/start 的正確 HTTP 代碼 (#16250)
  • 在共用 IPC 命名空間的容器之間共用 shm 和 mqueue (#15862)
  • 事件流(Event stream)現在顯示設定了 --oom-kill-disable 時的 OOM 狀態 (#16235)
  • 確保特殊網路檔案(/etc/hosts 等)若以 ro 選項掛載則為唯讀 (#14965)
  • 提升 rmi 效能 (#16890)
  • 除連結外,不要更新預設 bridge 網路的 /etc/hosts (#17325)
  • 修復重複容器名稱的衝突 (#17389)
  • 修復 docker inspect 中範本執行不正確的問題 (#17284)
  • 棄用 docker run 中 --cpu-shares-c 短旗標變體 (#16271)

用戶端

  • 允許 docker import 從本機檔案匯入 (#11907)

建置器

  • 新增 STOPSIGNAL Dockerfile 指令,允許為容器處理程序設定不同的停止訊號 (#15307)
  • 新增 ARG Dockerfile 指令,以及 docker build--build-arg 旗標,允許新增建置時環境變數 (#15182)
  • 提升快取缺失效能 (#16890)

儲存

  • devicemapper:實作延遲刪除能力 (#16381)

網路

  • docker network 脫離實驗性質並納入標準發行版 (#16645)
  • 新的網路頂層概念,具有相關的子指令和 API (#16645) 警告:該 API 與實驗性 API 不同
  • 支援多個隔離/微分割網路 (#16645)
  • 使用基於 VXLAN 的 overlay 驅動程式進行內建多主機網路連線 (#14071)
  • 支援第三方網路外掛程式 (#13424)
  • 動態將容器連線至多個網路的能力 (#16645)
  • 透過可插拔 IPAM 驅動程式支援使用者定義 IP 位址管理 (#16910)
  • 新增 daemon 旗標 --cluster-store--cluster-advertise 用於內建節點發現 (#16229)
  • 新增 --cluster-store-opt 用於設定 TLS 設定 (#16644)
  • 新增 --dns-opt 至 daemon (#16031)
  • 在 API v1.21 中棄用以下容器 NetworkSettings 欄位:EndpointIDGatewayGlobalIPv6AddressGlobalIPv6PrefixLenIPAddressIPPrefixLenIPv6GatewayMacAddress。這些現在特定於 bridge 網路。使用 NetworkSettings.Networks 來檢查每個網路的容器網路設定。

磁碟區

  • 新的頂層 volume 子指令和 API (#14242)
  • 將 API 磁碟區驅動程式設定移至主機特定配置 (#15798)
  • 若磁碟區名稱不唯一則列印錯誤訊息 (#16009)
  • 確保從 Dockerfiles 建立的磁碟區始終使用本機磁碟區驅動程式 (#15507)
  • 棄用對繫結掛載(bind mounts)自動建立缺失的主機路徑 (#16349)

日誌記錄

  • 新增 Amazon CloudWatch 的 awslogs 日誌驅動程式 (#15495)
  • 新增通用 tag 日誌選項,允許自訂傳遞給驅動程式的容器/映像檔資訊 (#15384)
  • 為 journald 驅動程式實作 docker logs 端點 (#13707)
  • 棄用驅動程式特定日誌標籤 (#15384)

發布

  • docker search 現在適用於部分名稱 (#16509)
  • 推送優化:避免緩衝至檔案 (#15493)
  • Daemon 將顯示已經由另一個客戶端提取的映像檔的進度 (#15489)
  • 僅請求執行目前操作所需的權限 (#)
  • 將信任金鑰(以及各自的環境變數)從 offline 改為 root,將 tagging 改為 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 以防止 daemon 使用 v1 registry

1.8.2 (2015-09-10)

發布

  • 修復處理 GNU LongLink 和 LongName 項目的罕見極端情況。
  • 修復 docker pull 上的 ^C。
  • 修復客戶端中斷連線時的 docker pull 問題。
  • 修復當記錄器未正確配置時導致 daemon 崩潰的問題。
  • 修復從 registry V2 提取映像檔時的 goroutine 洩漏。

執行時期

  • 修復在 Docker 容器內執行的 docker daemon 掛載 cgroups 的錯誤。
  • 正確初始化日誌配置。

用戶端

  • 當有預設格式時正確處理 docker ps 中的 -q 旗標。

網路

  • 修復 netlink 的幾個極端情況。

貢獻

  • 修復 bash 完成(bash completion)的幾個問題。

1.8.1 (2015-08-12)

發布

  • 修復推動多個標籤導致無效映像檔的錯誤

1.8.0 (2015-08-11)

發布

  • 受信任的拉取、推動和建置,預設禁用
  • 使 tar 層在 registries 之間具有決定論
  • 不允許刪除執行中容器的映像檔
  • 檢查要載入的標籤名稱是否為有效摘要
  • 允許單字元儲存庫名稱
  • 為無效標籤名稱新增更準確的錯誤描述
  • 使建置快取忽略 mtime

Cli

執行時期

  • 新增新的 Fluentd 日誌驅動程式
  • 允許 docker import 從本機檔案載入
  • 新增透過 UDP 進行 GELF 的日誌驅動程式
  • 允許使用 docker cp 將檔案從主機複製到容器
  • 將磁碟區驅動程式從實驗性質提升至主版本
  • 新增 json-file 日誌驅動程式的 rollover 選項,以及 --log-driver-opts 旗標
  • 新增記憶體 swappiness 調優選項
  • 特權模式下移除 cgroup 唯讀旗標
  • 使唯讀容器的 /proc、/sys 和 /dev 唯讀
  • 預設新增 cgroup 繫結掛載
  • Overlay:在 docker inspect 中匯出容器和映像檔的後設數據
  • Devicemapper:外部設備啟用
  • Devicemapper:啟動時比較基礎設備的 uuid
  • 從 registry 加密套件清單中移除 RC4
  • 新增 syslog-facility 選項
  • LXC execdriver 與近期 LXC 版本的相容性
  • 標記 LXC execdriver 為棄用(將隨 runc 遷移而移除)

插件

  • 分離外掛程式通訊端和規範位置
  • 允許與外掛程式進行 TLS 連線

錯誤修復

  • 新增缺失的 'Names' 欄位至 /containers/json API 輸出
  • 使懸空映像檔的 docker rmi 在拉取時安全
  • Devicemapper:將預設 basesize 變更為 100G
  • 帶有 sync.Mutex 和 gcc 的 Go 排程器問題
  • 修復搜尋 API 端點因空 AuthConfig 而崩潰的問題
  • 正確設定映像檔規範名稱
  • 僅在 lxc 驅動程式使用時檢查 dockerinit
  • 修復 nproc 的 ulimit 使用
  • 若指定 -i,--interactive,始終 attach STDIN
  • 儲存容器狀態失敗時顯示錯誤訊息
  • 修復將 --bridge=none 視為禁用網路的錯誤假設
  • 檢查主機配置中的無效連接埠規格
  • 修復 --net=host 模式的端點離開失敗
  • 修復容器未執行時 stats API 中的 goroutine 洩漏
  • 讀取 apparmor 檔案前進行檢查
  • 修復 DOCKER_TLS_VERIFY 被忽略的問題
  • 啟動時將 umask 設定為預設值
  • 更正暫停和取消暫停非執行中容器的訊息
  • 調整容器建立中不允許的 CpuShares
  • ZFS:正確套用 selinux 環境
  • 顯示空字串而不是當 IP opt 為 nil 時
  • docker kill 在容器未執行時回傳錯誤
  • 修復 COPY/ADD 引用/json 格式
  • 修復 logs -f 無輸出時的 goroutine 洩漏
  • 移除 nat 套件中無效 hostport 的崩潰
  • 修復 Fedora 22 中的容器連結
  • 修復使用分配範圍之外的預設閘道造成的錯誤
  • 以 RFC3339Nano 範本格式化 inspect 指令中的時間
  • 使 registry 客戶端接受 2xx 和 3xx http 狀態回應為成功
  • 修復因特定順序層下載失敗導致 daemon 崩潰的競爭問題。
  • 修復 docker ps 格式無效時的錯誤。
  • 移除多餘的 ip forward 檢查。
  • 修復嘗試推送映像檔至儲存庫鏡像的問題。
  • 修復初始化問題時清理網路入口點的錯誤。

1.7.1 (2015-07-14)

執行時期

  • 修復使用 docker exec 產生 exec 處理程序的預設使用者
  • 使 --bridge=none 不配置網路橋接
  • 正確發布網路統計數據
  • 修復靜態二進位檔案的隱式 devicemapper 選擇
  • 修復間歇性掛起的通訊端連線
  • 修復 CentOS/RHEL 6.6 上的橋接介面建立
  • 修復新增至 resolv.conf 的本機 dns 查詢
  • 修復 copy 指令掛載磁碟區
  • 修復使用 --volumes-from 掛載的磁碟區中的讀/寫權限

Remote API

發布

  • 修復提取私人映像檔
  • 修復 registry V2 和 V1 之間的回退

1.7.0 (2015-06-16)

執行時期

  • 實驗性功能:支援程序外磁碟區外掛程式
  • 可以使用 daemon 的 --userland-proxy=false 旗標禁用使用者空間代理,改用 hairpin NAT
  • exec 指令支援 -u|--user 旗標以指定新處理程序擁有者
  • 容器的預設閘道可以使用 --default-gateway--default-gateway-v6 旗標在 daemon 範圍內指定
  • CPU CFS (Completely Fair Scheduler) 配額可以使用 --cpu-quotadocker run 中設定
  • 容器區塊 IO 可以使用 --blkio-weightdocker run 中控制
  • ZFS 支援
  • docker logs 指令支援 --since 引數
  • 可以使用 docker run --uts=host 與主機共用 UTS 命名空間

品質

建置

發布

  • 官方 registry 的 v2 鏡像支援的客戶端支援

Bug 修復

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-file, syslog, 或 none
  • 按 ID 提取映像檔
  • --ulimit 用於設定容器的 ulimit
  • daemon 上的 --default-ulimit 選項,適用於所有建立的容器(並被 run 時的 --ulimit 覆蓋)

1.5.0 (2015-02-10)

建置器

  • 給定 docker build 使用的 Dockerfile 可以透過 -f 旗標指定
  • Dockerfile 和 .dockerignore 檔案本身可以作為 .dockerignore 檔案的一部分被排除,從而防止對這些檔案的修改使 ADD 或 COPY 指令快取失效
  • ADD 和 COPY 指令接受相對路徑
  • Dockerfile FROM scratch 指令現在被解釋為無基礎說明符
  • 提升公開大量連接埠時的效能

Hack

打包

  • 支援新版 registry HTTP API
  • 針對大部分層級已存在的映像檔,加快 docker push 速度
  • 修復透過代理伺服器連接私有 registry 的問題

Remote API

執行時期

  • Docker daemon 提供完整的 IPv6 支援
  • docker run 指令現在可使用 --pid=host 旗標來使用主機的 PID 命名空間,例如可利用容器化的除錯工具來對主機處理程序進行除錯
  • docker run 指令現在可使用 --read-only 旗標,將容器的根檔案系統掛載為唯讀模式;可搭配儲存卷(volumes)使用,強制容器內的處理程序僅能寫入會被持久化的位置
  • 可使用 --memory-swap 旗標限制 docker run 的容器總記憶體使用量
  • 大幅提升 devicemapper 儲存驅動程式的穩定性
  • 與主機系統的整合更佳:重啟容器後,容器將能反映主機 /etc/resolv.conf 檔案的變更
  • 與主機系統的整合更佳:各容器的 iptables 規則已移至 DOCKER 鏈(chain)中
  • 修復容器因記憶體不足而退出時回傳無效退出代碼的問題

其他

  • 客戶端連接 Docker daemon 時,現在會正確考慮 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 環境變數

1.4.1 (2014-12-15)

執行時期

  • 修復 volumes-from 和綁定掛載(bind mounts)在建立後未被正確執行的問題

1.4.0 (2014-12-11)

自 1.3.0 以來的重要功能

  • 為 daemon 設定 key=value 標籤(顯示於 docker info),使用新的 -label daemon 旗標套用
  • 新增 Dockerfile 中 ENV 的格式支援:ENV name=value name2=value2...
  • 新的 Overlayfs 儲存驅動程式
  • docker info 現在回傳 IDName 欄位
  • 可依事件名稱、容器或映像檔篩選事件
  • docker cp 現在支援從容器儲存卷複製檔案
  • 修復 docker tag,使其在覆蓋現有映像檔的標籤時會遵從 --force 參數

1.3.3 (2014-12-11)

安全性

  • 修復處理絕對符號連結時的路徑遍歷漏洞 (CVE-2014-9356)
  • 修復 xz 映像檔壓縮檔的解壓縮問題,防止權限提升 (CVE-2014-9357)
  • 驗證映像檔 ID (CVE-2014-9358)

執行時期

  • 修復讀取映像檔壓縮檔速度緩慢時的問題

用戶端

  • 修復與 stdin 重新導向相關的迴歸錯誤
  • 修復 docker cp 在目的地為當前目錄時的迴歸錯誤

1.3.2 (2014-11-20)

安全性

  • 修復 tar 突破(breakout)漏洞
  • 解壓縮現在於 chroot 沙盒中執行
  • 安全性選項不再提交至映像檔

執行時期

  • 修復 docker ps -f exited=1 中的死結(deadlock)問題
  • 修復當 --volumes-from 參照到啟動失敗的容器時所產生的錯誤

Registry

  • --insecure-registry 現在接受 CIDR 表示法,例如 10.1.0.0/16
  • IP 位於 127.0.0.0/8 範圍內的私有 registry 不需要 --insecure-registry 旗標
  • 當啟用鏡像(mirroring)時,跳過實驗性的 registry v2 API

1.3.1 (2014-10-28)

安全性

  • 防止客戶端、daemon 和 registry 回退至 < TLS 1.0 的 SSL 協定
  • 透過憑證驗證與 registry 建立安全的 HTTPS 連線,除非指定 --insecure-registry,否則不支援 HTTP 回退

執行時期

  • 修復儲存卷無法共用的問題

用戶端

  • 修復 --iptables=false 未自動設定 --ip-masq=false 的問題
  • 修復 docker run 對非 TTY 標準輸出的輸出問題

建置器

  • 修復環境變數中 $ 的跳脫(escaping)問題
  • 修復小寫 onbuild Dockerfile 指令的問題
  • 將環境變數展開限制為 ENVADDCOPYWORKDIREXPOSEVOLUMEUSER

1.3.0 (2014-10-14)

自 1.2.0 以來的重要功能

  • Docker exec 允許您在現有容器內執行額外的處理程序
  • Docker create 讓您能夠透過 CLI 建立容器,而不需執行任何處理程序
  • --security-opts 選項允許使用者自訂容器標籤和 apparmor 設定檔
  • Docker ps 篩選器
  • COPY/ADD 支援萬用字元
  • 將正式發布 URL 從 get.docker.io 改為 get.docker.com
  • 在有效的 CIDR 範圍內分配 bridge 的 IP 位址
  • 使用 drone.io 進行 PR 和 CI 測試
  • 具備設定官方 registry 鏡像的能力
  • 使用 docker save 時能夠儲存多個映像檔

1.2.0 (2014-08-20)

執行時期

  • 讓 /etc/hosts、/etc/resolv.conf 和 /etc/hostname 在執行階段可編輯
  • 使用原則(policies)自動重啟容器
  • 針對大型暫存檔案使用 /var/lib/docker/tmp
  • 使用 --cap-add--cap-drop 來調整您所需的 Linux 能力(capability)
  • 使用 --device 在容器內使用裝置

用戶端

  • 在私有 registry 上進行 docker search
  • 新增 exited 篩選器至 docker ps --filter
  • docker rm -f 現在會強制終止(kill)而非停止容器
  • --dns 旗標支援 IPv6 位址

Proxy

  • Proxy 實例化為獨立處理程序
  • 針對 UDP proxy 的小型錯誤修復

1.1.2 (2014-07-23)

執行時期

  • 修復現有容器的埠號分配
  • 修復 daemon 重啟時的容器重啟問題

打包

  • 修復 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 的內容(context)
  • 修復 Dockerfiles 中空格和多行的問題

執行時期

  • 整體效能改進
  • 允許使用 / 作為 docker run -v 的來源
  • 修復埠號分配
  • 修復 docker save 中的錯誤
  • 新增連結(links)資訊至 docker inspect

用戶端

  • 改進 docker commit 的指令列解析

Remote API

1.0.1 (2014-06-19)

自 1.0.0 以來的重要功能

  • 增強 LXC 驅動程式的安全性

建置器

  • 修復 ONBUILD 指令傳遞至孫容器的問題

執行時期

  • 修復事件訂閱
  • 修復使用主機網路模式時的 /etc/hostname 檔案
  • 允許 -h--net=none 同時使用
  • 修復 --privileged 下的熱插拔裝置問題

用戶端

  • 修復與事件相關的偽影(artifacts)
  • 修復空旗標(empty flags)導致的崩潰問題
  • 修復 Mac OS X 上的 docker cp

雜項

  • 修復 Mac OS X 上的編譯問題
  • 修復多個競爭條件(race conditions)

1.0.0 (2014-06-09)

自 0.12.0 以來的重要功能

  • 生產環境支援

0.12.0 (2014-06-05)

自 0.11.0 以來的重要功能

  • 40 多項關於穩定性、效能與可用性的改進
  • 新增 COPY Dockerfile 指令,允許將本地檔案複製到容器中,如果該檔案是 tar 檔,則無需解壓縮
  • ADD 時繼承主機檔案權限
  • 新增 pauseunpause 指令,允許使用 cgroup freezer 暫停和恢復容器
  • images 指令擁有 -f/--filter 選項以篩選映像檔清單
  • 新增 --force-rm 以在建置失敗後清理
  • 將 Remote API 中的 JSON 鍵(keys)標準化為 CamelCase
  • docker run 若未指定標籤,現在會預設使用 latest
  • 增強 Linux 能力和裝置節點的安全性

0.11.1 (2014-05-07)

Registry

  • 修復私有 registry 的推入與拉取功能

0.11.0 (2014-05-07)

自 0.10.0 以來的重要功能

  • 掛載和處理程序標籤的 SELinux 支援
  • 連結後的容器可透過主機名稱(hostname)存取
  • 使用 --net 旗標以進行進階網路設定,例如主機網路模式,讓容器可使用主機的網路介面
  • 在 Remote API 新增 ping 端點,以便對您的 docker daemon 進行健康檢查
  • Logs 現在可回傳選用的時間戳記
  • Docker 現在可與支援 SHA-512 的 registry 搭配運作
  • 支援多個 registry 端點以允許 registry 鏡像

0.10.0 (2014-04-08)

建置器

  • 修復單行輸出多個訊息的問題,解決建置期間輸出破碎的問題
  • 對於 ADD 建置指令,追蹤容器根目錄內的符號連結
  • 修復 EXPOSE 快取問題

文件

  • 在文件中新增 docker ps 的新選項
  • 在文件中新增 docker restart 的選項
  • 更新 daemon 文件與關於 --iptables 和 --ip-forward 的說明訊息
  • 更新 apt-cacher-ng 文件範例
  • 從文件中移除重複的 --mtu 說明
  • 在文件中補上 docker images 缺少的 -t 和 -v
  • 對 CLI 文件進行修復
  • 更新 libcontainer 文件
  • 更新文件中的映像檔說明,移除對 AUFS 和 LXC 的參照
  • 更新文件中的 nodejs_web_app,使用新的 epel RPM 位址
  • 修復關於容器安全性的外部連結
  • 更新 Remote API 文件
  • 在歷史記錄文件中新增映像檔大小
  • 在 redis 範例中明確標註綁定至所有介面
  • 在 1.10 remote api 文件中說明 DisableNetwork 旗標
  • 說明 --lxc-conf 僅限 lxc 使用
  • 新增 chef 使用文件
  • 為包含多個映像檔的情況新增 docker load 範例
  • 在文件中解釋 docker run -a 的功能

貢獻

  • 新增 DOCKER_LOGFILE 的變數至 sysvinit,並在開啟 logfile 時使用追加而非覆蓋
  • 修正 init 指令碼 cgroup 掛載的變通方法,使其更接近 cgroupfs-mount 以確保正常運作
  • 從 upstart 主機整合範例中移除 inotifywait 的變通作法,因為已不再需要
  • 在 contrib 中新增 check-config 指令碼
  • 修復 fish shell 的自動補完功能

Hack

Remote API

執行時期

  • 支援 hairpin NAT,無須經過 Docker 伺服器
  • devicemapper:移除不存在的裝置時立即成功
  • devicemapper:改進 devicemapper 裝置處理(新增單一裝置鎖定、增加睡眠時間,並在睡眠期間解鎖)
  • devicemapper:將 waitClose 中的逾時時間增加至 10 秒
  • devicemapper:確保整潔地關閉 thin pool
  • devicemapper:在 activateDeviceIfNeeded、deactivateDevice、setInitialized、deleteDevice 中傳遞 info 而非 hash
  • devicemapper:避免 AB-BA 死結
  • devicemapper:使關閉過程更好/更快
  • 改進 mflag 中的字母排序
  • 移除手動 http cookie 管理,改用 cookiejar
  • 在 Darwin 上使用 BSD 原始模式,修復 nano、tmux 等應用程式
  • 為客戶端新增 FreeBSD 支援
  • 將 auth 套件合併至 registry
  • docker pull 的 -t 新增棄用警告
  • 移除錯誤發生時的 goroutine 外洩
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式
  • 修復 darwin 上的 attach 退出問題
  • 改進棄用訊息
  • 針對 docker pull 重試擷取層級詮釋資料最多 5 次
  • 僅對 execin 取消共享掛載命名空間
  • 提交時合併現有設定
  • 停用 daemon 啟動逾時
  • 修復問題 #4681:停用網路功能時新增 loopback 介面
  • 新增問題 #4681 的失敗測試案例
  • 傳送 SIGTERM 給子處理程序,而非 SIGKILL
  • 即使不在偵錯模式下,也在 docker info 中顯示驅動程式和核心版本
  • 始終為 libcontainer 符號連結 /dev/ptmx,修復主控台相關問題
  • 修復因缺少 /etc/apparmor.d 而導致的問題
  • 建立容器失敗時不再留下空的 cidFile
  • 若尚未掛載,則自動掛載 cgroups
  • 在搜尋測試中使用 mock
  • 全面更新為雙短橫線(double-dash)格式
  • 將 .dockerenv 解析移至 lxc 驅動程式
  • 將容器內的所有綁定掛載移至命名空間內
  • 不再為容器使用獨立的綁定掛載
  • 始終為 libcontainer 符號連結 /dev/ptmx
  • 其他驅動程式不再透過 pid 進行 kill
  • 為 libcontainer 新增初步紀錄
  • docker ps 中依埠號排序
  • 將網路驅動程式移至執行階段頂層套件
  • docker rmi 新增 --no-prune
  • docker ps 中新增退出後經過的時間
  • graphdriver:新增建置標籤
  • 防止分配已分配的埠號,並改進埠號分配
  • docker ps 中新增對 --since/--before 的支援
  • 清理容器停止流程
  • 支援可設定的 DNS 搜尋網域
  • 支援相對路徑的 WORKDIR 指令
  • 為 docker save 新增 --output 旗標
  • 移除設定合併中重複的 DNS 項目
  • 新增 cpuset.cpus 至 cgroups 和原生驅動程式選項
  • 移除 docker-ci
  • 提升 btrfs 等級,btrfs 不再視為實驗性
  • docker load 新增 --input 旗標
  • 當現有的 bridge 與 IP 位址不符時回傳錯誤
  • 解析行續接符號前先去除註解,避免將指令誤判為註解
  • 修復 TestOnlyLoopbackExistsWhenUsingDisableNetworkOption,使其忽略 "DOWN" 介面
  • 新增 cgroups 的 systemd 實作,使容器顯示為 systemd 單元
  • 修復未指定儲存庫時的 commit 和 import 問題
  • 將 /var/lib/docker 重新掛載為 --private 以解決擴充問題
  • ping 遠端 registry 時使用環境變數中的代理伺服器
  • 降低無害錯誤的錯誤層級
  • 允許 --volumes-from 為單一檔案
  • 修復 StdCopy 中的緩衝區擴充問題
  • 無論 attach 或 stdin 狀態如何皆設定錯誤,修復 #3364
  • 新增對 --env-file 的支援,以從檔案載入環境變數
  • 符號連結 /etc/mtab 和 /proc/mounts
  • 允許推入單一標籤
  • 關閉 daemon 時整潔地關閉容器,並無限期等待容器關閉。這使得容器在 daemon 關閉時能透過 SIGTERM 正常關閉
  • 啟動已在運行的容器時不再拋出錯誤
  • 修復動態埠號分配限制
  • 從 libcontainer 中移除 setupDev
  • docker version 中新增 API 版本
  • 接收訊號時回傳正確退出代碼,並使 SIGQUIT 在不清理的情況下退出
  • 修復 --volumes-from 掛載失敗
  • 允許非特權容器建立裝置節點
  • 跳過登入測試,因其依賴外部託管服務
  • 棄用 docker images --treedocker images --viz
  • 棄用 docker insert
  • 包含 apparmor 的基礎抽象,修復 Ubuntu 14.04 上與 apparmor 相關的問題
  • 在推入映像檔時透過 HTTP 收到 401 時新增具體錯誤訊息
  • 修復絕對卷(volume)檢查
  • 從設定中移除 volumes-from
  • 將 DNS 選項移至 hostconfig
  • 更新 libcontainer 的 apparmor 設定檔
  • 新增 docker commit -run 的棄用通知

0.9.1 (2014-03-24)

建置器

  • 修復單行輸出多個訊息的問題,解決建置期間輸出破碎的問題

文件

  • 修復關於容器安全性的外部連結

貢獻

  • 修正 init 指令碼 cgroup 掛載的變通方法,使其更接近 cgroupfs-mount 以確保正常運作
  • 新增 DOCKER_LOGFILE 的變數至 sysvinit,並在開啟 logfile 時使用追加而非覆蓋

Hack

Remote API

執行時期

  • 在 Darwin 上使用 BSD 原始模式,修復 nano、tmux 等應用程式
  • 僅對 execin 取消共享掛載命名空間
  • 針對 docker pull 重試擷取層級詮釋資料最多 5 次
  • 提交時合併現有設定
  • 修復監控器(monitor)中的崩潰問題
  • 停用 daemon 啟動逾時
  • 修復問題 #4681:停用網路功能時新增 loopback 介面
  • 新增問題 #4681 的失敗測試案例
  • 傳送 SIGTERM 給子處理程序,而非 SIGKILL
  • 即使不在偵錯模式下,也在 docker info 中顯示驅動程式和核心版本
  • 始終為 libcontainer 符號連結 /dev/ptmx,修復主控台相關問題
  • 修復因缺少 /etc/apparmor.d 而導致的問題
  • 建立容器失敗時不再留下空的 cidFile
  • 改進棄用訊息
  • 修復 darwin 上的 attach 退出問題
  • devicemapper:改進 devicemapper 裝置處理(新增單一裝置鎖定、增加睡眠時間,並在睡眠期間解鎖)
  • devicemapper:移除不存在的裝置時立即成功
  • devicemapper:將 waitClose 中的逾時時間增加至 10 秒
  • 移除錯誤發生時的 goroutine 外洩
  • 更新 parseLxcInfo 以符合新的 lxc1.0 格式

0.9.0 (2014-03-10)

建置器

  • 建置期間避免額外的掛載/卸載,修復建置期間相關的錯誤
  • 為 docker build --rm 新增錯誤回傳,補上缺失的錯誤處理
  • 禁止連鎖 onbuild、onbuild fromonbuild maintainer 觸發器
  • --rm 設為 docker build 的預設值

文件

  • 透過 https 下載 Mac 版 docker 客戶端二進位檔
  • 更新安裝說明與描述的標題
  • 新增升級 boot2docker 的說明
  • 在 OS X 安裝文件中新增埠轉發範例
  • 嘗試將儲存庫與 registry 脫鉤
  • 更新文件以對 docker ps 做更多解釋
  • 更新 sshd 範例以使用 Dockerfile
  • 重寫部分範例,包括 Python 範例
  • 更新文件以包含容器生命週期說明
  • 更新文件說明以討論 docs 分支
  • 範例不再跳過憑證檢查並使用 HTTPS
  • 恢復先前因核心頁面移除而遺失的記憶體與交換記憶體計算區段
  • 解釋 DNS 警告以及在運行本地名稱伺服器的系統上如何解決它們

貢獻

  • 為 mkimage-debootstrap 新增 Tanglu 支援
  • 為 mkimage-debootstrap 新增 SteamOS 支援

Hack

Remote API

執行時期

  • CLI 不再 ping registry,所有對 registry 的請求皆透過 daemon
  • 檢查 lxc 驅動程式中 nil 回傳資訊,修復舊版 lxc 的崩潰問題
  • Devicemapper:清理及修復卸載問題,修復導致卸載間歇性失敗的兩個問題
  • Devicemapper:移除裝置時同時移除目錄,移除裝置後不再遺留目錄
  • Devicemapper:啟用 skip_block_zeroing,不清除區塊以提升效能
  • Devicemapper:修復關機時關於儲存池裝置移除的警告
  • 確保 docker cp 串流正確關閉,修復 docker cp 無法複製檔案的問題
  • 停止將 tcp:// 預設為 127.0.0.1:4243 並移除 tcp 預設埠號
  • 修復 docker commit 中的 --run,恢復其功能
  • 修復自訂 bridge 相關選項,恢復其功能
  • 將 PTY 綁定掛載為容器主控台,允許 tmux/screen 執行
  • 新增純 Go libcontainer 函式庫,使其僅利用 Linux 核心特性即可執行容器
  • 新增使用 libcontainer 的原生 exec 驅動程式,並將其設為預設
  • 新增處理壓縮檔中擴充屬性的支援
  • 設定容器 MTU 與主機 MTU 相同
  • 為層級新增簡單的 sha256 總和檢查碼以加快 docker push
  • 改進核心版本解析
  • 允許旗標群組化(docker run -it
  • 移除 chroot exec 驅動程式
  • 修復除以零的錯誤以防崩潰
  • 重寫 docker rmi
  • 修復 lxc 1.0.0 下的 docker info
  • 修復 fedora 下 apparmor 的 tty 問題
  • 不再總是附加環境變數,改以設定中的變數取代預設值
  • 修復 goroutine 外洩
  • 切換至 Go 1.2.1
  • 修復唯一限制錯誤檢查
  • 處理 Docker 資料目錄與 TMPDIR 的符號連結
  • 為旗標新增棄用警告(-flag 已棄用,建議改用 --flag)
  • 為原生執行驅動程式新增 apparmor 設定檔
  • 將系統專屬程式碼從 archive 移至 pkg/system
  • 修復 docker run -i -t 的重複訊號問題 (issue #3336)
  • 為 lxc 回傳正確的處理程序 pid
  • 新增 -G 選項以指定 unix socket 所屬群組
  • 新增 -f 旗標至 docker rm 以強制移除執行中的容器
  • docker daemon 重啟時強制終止並重啟所有「幽靈」容器
  • 新增 DOCKER_RAMDISK 環境變數,讓 Docker 在根目錄位於 ramdisk 時也能運作

0.8.1 (2014-02-18)

建置器

  • 建置期間避免額外的掛載/卸載,移除導致 devicemapper 問題的不必要操作
  • 修復 ADD tar 壓縮檔的迴歸錯誤,停止 Docker 對透過 ADD 新增的本地 tar 檔進行解壓縮
  • docker build --rm 新增錯誤回傳,補上遺漏的錯誤檢查以確保偵測並報告移除容器失敗的情況

文件

  • 更新問題提報說明
  • 警告勿對 Docker 儲存資料夾使用符號連結
  • 以 IceWeasel 範例取代 Firefox 範例
  • 使用 Dockerfile 重寫 PostgreSQL 範例並增加更多詳細資訊
  • 改進 OS X 文件

Remote API

執行時期

  • 修復 bridge 和自訂 bridge 的自訂設定使用方式
  • 重構 devicemapper 程式碼以避免許多掛載/卸載的競爭條件與失敗
  • 移除兩個可能導致 Docker 在某些情況下崩潰的 panic
  • CLI 客戶端不再 ping registry
  • 啟用 devicemapper 的 skip_block_zeroing,停止 devicemapper 對整個區塊進行歸零
  • 修復 docker commit 中的 --run,使其將 --run 儲存於映像檔設定中
  • 移除 devicemapper 裝置時移除目錄,清理遺留的掛載目錄
  • 移除非特權容器的 NET_ADMIN 能力,無特權容器無法更改網路設定
  • 確保 docker cp 串流正確關閉
  • 容器註冊期間避免額外的掛載/卸載,移除導致 devicemapper 問題的不必要操作
  • 停止將 tcp:// 作為預設綁定於 127.0.0.1:4243 的位址並移除預設埠號
  • 將 PTY 綁定掛載為容器主控台,允許 tmux 和 screen 在容器內執行
  • 清理封存檔關閉流程,修復並改進封存處理
  • 修復暫存目錄為符號連結系統上的引擎測試
  • 新增 save 和 load 的測試方法
  • 重啟容器時避免暫時卸載。修復 devicemapper 在重啟期間的競爭條件
  • 從 GitHub 儲存庫建置時支援子模組
  • 引號處理卷路徑以允許空格
  • 修復遠端 tar ADD 行為,修復導致 Docker 解壓縮 tar 檔的迴歸錯誤

0.8.0 (2014-02-04)

自 0.7.0 以來的重要功能

  • 映像檔與容器的移除速度大幅提升

  • 從原始碼建置映像檔的速度顯著加快

  • Docker daemon 的啟動與停止速度大幅提升

  • 透過串流處理檔案而非在記憶體中緩衝,以及修復記憶體外洩與次優分配,多種常見作業的記憶體佔用顯著降低

  • 修復多個競爭條件,提升 Docker 在高併發負載下的穩定性。使 Docker 更穩定、不易崩潰,並降低記憶體佔用

  • 所有封裝作業現在均基於 Go 語言的標準 tar 實作(隨 Docker 內建),封裝作業在不同主機發行版間的移植性更好,並解決了因 tar 各種發行版間不相容造成的數個問題

  • Docker 現在能更優雅地建立、移除和修改大量容器與映像檔,歸功於對系統資源更積極的釋放。例如儲存驅動程式 API 現在允許 Docker 對驅動程式建立的掛載進行參考計數。隨著網路與執行子系統的持續改動,測試這些區域成為重構重點。透過將這些子系統移至獨立套件,我們能測試、分析並監控這些套件的覆蓋率與品質

  • 許多元件已分割為更小的子套件,每個套件皆有專屬測試套件。結果是程式碼測試更完整、更易讀且更易於更改

  • ADD 指令現在支援快取,避免在內容未變更時不必要地重複上傳相同的來源內容

  • 新的 ONBUILD 指令會為您的映像檔新增一個「觸發」指令,在未來將此映像檔作為其他建置的基礎時執行

  • Docker 現在隨附一個實驗性的儲存驅動程式,使用 BTRFS 檔案系統進行寫入時複製(copy-on-write)

  • Docker 官方正式支援 Mac OS X

  • Docker daemon 支援 systemd socket 啟用

0.7.6 (2014-01-14)

建置器

  • 不追蹤建置內容外的符號連結

執行時期

  • 指定 ro 時重新掛載綁定掛載
  • 使用 https 獲取 docker 版本

其他

  • 內嵌 test.docker.io 指紋
  • 在封裝文件中新增 ca-certificates

0.7.5 (2014-01-09)

建置器

  • 停用建置壓縮。空間使用較多,但上傳速度大幅提升
  • 修復特定路徑的 ADD 快取
  • 不壓縮從 git 建置的封存檔

文件

  • 修復 GROUP 新增範例中的錯誤
  • 確保文件中包含 GPG 指紋
  • 針對 DCO 的提交簽署提供更具體的設定建議

執行時期

  • 修復拼寫錯誤的容器名稱
  • 網路功能停用時不再新增主機名稱
  • 依日期回傳快取中最近期的映像檔
  • 回傳來自 docker wait 的所有錯誤
  • 新增 Content-Type Header "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 build
  • 修復檔案快取問題並防止錯誤的快取命中
  • 解組 CMD 和 ENTRYPOINT 時使用相同的錯誤處理

文件

  • 簡化並精簡 Amazon Quickstart
  • 安裝說明使用無字首的 Fedora 映像檔
  • 更新 Docker 在 GCE 上的 mtu 旗標說明
  • 新增 Ubuntu Saucy 至安裝說明
  • 修復 master 分支上顯示錯誤版本警告而非最新版的問題

執行時期

  • 僅在需要計算映像檔大小時獲取映像檔的 rootfs
  • 正確處理 UDP 埠號解除對應
  • 使 CopyFileWithTar 使用管線而非緩衝區,以節省 docker build 的記憶體
  • 修復登入訊息,應顯示 pull 而非 push
  • 移除 "SOURCE" 提示並提及 STDIN 以修復 "docker load" 說明
  • 使空白 -H 選項預設與未傳送 -H 時相同
  • 將 cgroups 公用程式提取至獨立子模組

其他

  • 新增 Travis CI 設定以驗證 DCO 和 gofmt 需求
  • 新增開發者原創性證書(DCO)文字
  • 升級 VBox Guest Additions
  • ping registry 伺服器時檢查獨立標頭

0.7.3 (2014-01-02)

建置器

  • 基於新增內容的雜湊值,更新 ADD 以使用映像檔快取
  • 為空的 Dockerfile 新增錯誤訊息

文件

  • 更新文件使其隨螢幕大小調整寬度
  • 新增使用原生二進位檔時需要安裝 LXC 的相關資訊
  • 更新 Fedora 文件以釐清 docker 與 docker.io 的衝突
  • 新增關於在多個 GCE 區域使用新 -mtu 旗標的注意事項
  • 新增 FrugalWare 安裝說明
  • 新增更完整的 docker run 範例
  • 修復建立與啟動特權(Privileged)容器的 API 文件
  • 在 "/containers/create" 中新增缺失的 "name" 參數文件
  • 提及 lxc-checkconfig 作為檢查某些必要核心配置的方法
  • 使用 1.7 文件新增內容更新 1.8 API 文件

Hack

打包

  • 為 Darwin (Mac OS X) 新增官方 Docker 客戶端二進位檔
  • 移除 deb 套件中空的 "Vendor" 字串並新增 "License"
  • 在 deb 套件中新增 "/etc/default/docker" 的存根版本

執行時期

  • 更新層級應用方式,原地解壓 tars,處理 whiteouts 時避免檔案流動
  • 修復 tar 處理中 mtime 比較的寬鬆度(因 GNU tar 和 Go tar 尚未支援次秒級 mtime 精度)
  • 用純 Go 重新實作 docker top,使其運作更一致,甚至在 Docker-in-Docker 內也能運作(藉此移除某些 lxc-ps 版本中存在的 shell 注入漏洞)
  • 更新 -H unix://,使其透過為缺失部分插入預設值,運作方式類似 -H tcp://
  • 修復更多關於 dockerinit 以及已刪除或已替換之 docker/dockerinit 檔案的邊角案例
  • 更新容器名稱驗證以包含 '.'
  • 修復將符號連結或非絕對路徑作為 -g 的參數時無法如預期運作的問題
  • 更新以處理 LXC 外部的外部掛載,修復許多微小的掛載怪異之處,並簡化未來的執行後端與其他功能
  • 更新以在 docker images -tree 中全面使用正確的方塊繪圖字元
  • 將 MTU 設定從 LXC 設定移至直接使用 netlink
  • 為外部 tar 調用新增 -S 選項,以更有效地處理稀疏檔案
  • 在 User-Agent 字串中新增 arch/os 資訊,特別是針對 registry 請求
  • 為 Docker daemon 新增 -mtu 選項以設定 MTU
  • 修復 docker build 在錯誤時以非零退出代碼退出
  • 新增 DOCKER_HOST 環境變數,以設定客戶端 -H 旗標,而無需每次調用都手動指定

0.7.2 (2013-12-16)

執行時期

  • 建立容器時以標準正規表示式驗證名稱
  • 將映像檔最大深度從 42 增加至 127
  • 持續將 API 端點移至 job api
  • 新增 -bip 旗標,允許透過 CIDR 指定動態 bridge IP
  • 在某些 ipv6 未啟用的系統上允許建立 bridge
  • 在 dockerinit 內部設定主機名稱與 IP 位址
  • 在 dockerinit 內部移除能力(capabilities)
  • 影像中存在符號連結時修復主機上的儲存卷
  • 即使容器未在執行,只要有「任何」容器依賴該映像檔,即禁止刪除映像檔
  • 更新 docker push 以使用新的進度顯示
  • 使用 os.Lstat 以在檢查儲存卷時掛載 unix sockets
  • 調整非活動使用者登入的處理方式
  • 在 devicemapper 中為舊版核心新增缺失的定義
  • 允許無容器驗證的取消標籤(untag)作業
  • 將驗證設定(auth config)新增至 docker build

文件

  • 新增更多關於 Docker 紀錄的資訊
  • 新增 RHEL 文件
  • 新增直接更改容器內執行之 CMD 的範例
  • 更新 Arch 安裝文件
  • 新增關於信任建置(Trusted Builds)的章節
  • 新增網路文件頁面

其他

  • 新增用於提供程式碼覆蓋率報告的 cover bundle
  • 將整合測試分離至多個 bundles
  • 使 Tianon 成為 hack 維護者
  • 更新 mkimage-debootstrap,包含更多保持映像檔輕量的調整
  • 使用 https 獲取安裝指令碼
  • 隨著 Go 1.2 的釋出,移除 vendored dotcloud/tar

0.7.1 (2013-12-05)

文件

  • 新增 @SvenDowideit 為文件維護者
  • 新增連結(links)範例
  • 新增關於 ambassador 模式的文件
  • 新增 Google Cloud Platform 文件
  • 新增 dockerfile 最佳實作
  • 更新 RHEL 文件
  • 更新 registry 文件
  • 更新 Postgres 範例
  • 更新 Ubuntu 安裝文件
  • 改進遠端 api 文件

執行時期

  • 將 hostconfig 新增至 docker inspect
  • 實作 docker log -f 以串流傳輸紀錄
  • 新增環境變數以停用核心版本警告
  • 新增 -format 至 docker inspect
  • 支援檔案的綁定掛載
  • 修復 RHEL 上的 bridge 建立
  • 修復映像檔大小計算
  • 確保即使 bridge 已存在仍會呼叫 iptables
  • 修復僅 stderr attach 的問題
  • 銷毀容器時移除 init 層級
  • 修復不同介面上的相同埠號綁定
  • docker build 現在回傳正確退出代碼
  • 修復 docker port 以顯示正確埠號
  • docker build 現在會在客戶端檢查 Dockerfile 是否存在
  • docker attach 現在回傳正確退出代碼
  • 容器不存在時移除名稱項目

Registry

  • 改進進度條,新增下載 ETA
  • 同時進行的拉取作業現在會等待第一個完成,而非失敗
  • 推入 registry 時僅標籤最頂層映像檔
  • 修復離線映像檔傳輸問題
  • 修復阻止在 registry 密碼中使用 ':' 的問題

其他

  • 新增 pprof 處理常式以進行偵錯
  • 建立 Makefile
  • 使用現在包含修復的 stdlib tar
  • 改進 make.sh 測試指令碼
  • 處理 daemon 上的 SIGQUIT
  • 測試期間停用詳細輸出
  • 升級至 go1.2 以進行正式建置
  • 改進單元測試
  • 測試套件現在會執行所有測試,即使其中一個失敗
  • 重構 Go 中的 C 程式碼 (Devmapper)
  • 修復 OS X 編譯

0.7.0 (2013-11-25)

自 0.6.0 以來的重要功能

  • 儲存驅動程式:可從 aufs、device-mapper 或 vfs 中選擇
  • 標準 Linux 支援:Docker 現在可在未經修改的 Linux 核心及所有主要發行版上執行
  • 連結(Links):透過將容器彼此連接來組成複雜的軟體堆疊
  • 容器命名:透過賦予易記的名稱來組織您的容器
  • 進階埠號重新導向:指定每個介面的埠號重新導向,或保持敏感埠號為私有
  • 離線傳輸:在不遺失資訊的情況下推入與拉取映像檔至檔案系統
  • 品質:數不盡的錯誤修復與微小的可用性改進。測試覆蓋率顯著提升

0.6.7 (2013-11-21)

執行時期

  • 改進穩定性,修復部分競爭條件
  • 刪除容器儲存卷時跳過已掛載的卷
  • 修復層級大小計算:正確處理硬連結(hard links)
  • 針對 docker cp CONTAINER:PATH 使用工作路徑
  • 修復 tmp 目錄從未清理的問題
  • 加速 docker ps
  • 名稱衝突時更具說明性的錯誤訊息
  • 修復名稱伺服器正規表示式
  • 始終回傳完整 ID
  • 修復容器重啟競爭條件
  • 在 docker stop;docker start 時保留已發布的埠號
  • 修復 Fedora 上的容器網路
  • 正確地將 "any address" 表達至 iptables
  • 重新連接到幽靈容器時修復網路設定
  • 若映像檔由執行中的容器使用,則防止刪除
  • 在圖形資料(graph)中對讀取作業進行鎖定

RemoteAPI

  • 在 docker rmi 上回傳完整 ID

用戶端

  • 在 images 中新增 -tree 選項
  • 離線映像檔傳輸
  • 用法錯誤時以狀態 2 退出,並將用法資訊顯示在 stderr
  • 不將 SIGCHLD 轉發至容器
  • 為 docker events -since 使用字串時間戳記

其他

  • 更新至 go 1.2rc5
  • 在 upstart 中新增 /etc/default/docker 支援

0.6.6 (2013-11-06)

執行時期

  • 確保註冊時的容器名稱
  • 修復 /etc/hosts 中的迴歸錯誤
  • 在圖形資料(graph)中對寫入作業進行鎖定
  • 檢查埠號是否有效
  • 修復幽靈容器網路的重啟執行階段錯誤
  • 增加更多顏色與動物以擴大產生的名稱池
  • 修復 docker inspect 中的問題
  • 脫離 apparmor 限制
  • 使用檔案設定環境變數
  • 防止 docker insert 抹除內容
  • 防止 CreateBridgeIface 中的 DNS 伺服器衝突
  • 在伺服器端驗證綁定掛載
  • 在 docker build 中使用父映像檔設定
  • 修復 /etc/hosts 中的迴歸錯誤

用戶端

  • 新增 -P 旗標以發布所有已暴露的埠號
  • 在 docker history 中新增 -notrunc 和 -q 旗標
  • 修復 docker commit、tag 和 import 用法
  • 在 docker search 中新增星級、信任建置和程式庫旗標
  • 修復具有 tty 的 docker logs

RemoteAPI

  • 使 /events API 立即傳送標頭
  • docker top 不再分割最後一欄
  • 將大小新增至歷史記錄

其他

  • Contrib:桌面整合。Firefox 使用案例
  • Dockerfile:升級至 go1.2rc3

0.6.5 (2013-10-29)

執行時期

  • 容器現在可以命名
  • 容器現在可以連結以進行服務發現
  • 'run -a'、'start -a' 和 'attach' 可以將訊號轉發至容器,以與處理程序監控器達到更好的整合
  • 重啟後自動啟動崩潰的容器
  • 針對容器連結,將 IP、埠號與協定作為獨立環境變數暴露
  • 允許將埠號發布至特定 IP
  • 預設禁止容器間通訊
  • 在 Container.Attach 中忽略 stdin 的 ErrClosedPipe
  • 移除未使用的欄位 kernelVersion
  • 修復在容器中掛載 /mnt 子目錄時的問題
  • 修復移除映像檔時的取消標籤行為
  • 在 dockerinit 內更改工作目錄時檢查 syscall.Chdir 的回傳值

用戶端

  • 僅在需要時才將 stdin 傳遞給 hijack,以避免管線關閉錯誤
  • 在指令列方法調用中減少反射使用
  • 啟動容器「後」監控 tty 大小,而非啟動前
  • 移除 log.Fatal 後無用的 os.Exit() 呼叫

Hack

其他

  • 文件:修復範例中 nc 的旗標
  • 測試:移除警告並預防掛載問題
  • 測試:更改 tty 調整大小邏輯以避免測試中的警告
  • 建置器(Builder):修復詳細輸出模式下 docker build 的競爭條件
  • Registry:修復 PushImageJSONIndex 方法的 content-type
  • Contrib:改進產生 Debian 和 Arch linux 伺服器映像檔的輔助工具

0.6.4 (2013-10-16)

執行時期

  • Start() 失敗時新增容器清理功能
  • 在 utils/stdcopy.go 中新增更好的註解
  • 為錯誤紀錄新增 utils.Errorf
  • 為 docker run 新增 -rm,以在退出時移除容器
  • 移除實際上並非錯誤的錯誤訊息
  • 修復含有卷(volumes)的 docker rm
  • 修復 HTTP body 可能未關閉的某些錯誤情況
  • 修復錯誤的 dockercfg 檔案導致的 panic
  • 修復帶有 -i 的 attach 行為
  • 在狀態中記錄終止時間
  • 使用空字串,使 TempDir 自動使用作業系統的暫存目錄
  • 確保關閉網路分配器
  • 預設自動重啟容器
  • 將 vendored kr/pty 升級至 commit 3b1f6487b (syscall.O_NOCTTY)
  • lxc:允許容器內的 set_file_cap 能力
  • 僅在 CLI 中分割 run -rm
  • 分割 stdout stderr
  • 始終為容器建立新工作階段

測試

  • 新增彙總的 docker-ci 電子郵件報告
  • 新增清理功能以移除殘留容器
  • 新增夜間釋出版本至 docker-ci
  • 在 auth.ResolveAuthConfig 周圍新增更多測試
  • 移除測試中的少量錯誤
  • TCP 與 UDP proxy 終止時捕捉 errClosing 錯誤
  • 僅使用 TESTFLAGS='-run TestName' make.sh 執行特定測試
  • 防止 docker-ci 測試已關閉的 PR
  • 在測試中將 panic 取代為 log.Fatal
  • 增加 TestRunDetach 逾時時間

文件

  • 新增 Docker 基礎架構文件的初步草稿
  • 在 CONTRIBUTING.md 中新增開發環境連結
  • 在 Ubuntu 文件中新增 apt-get install curl
  • 新增關於出口限制的解釋
  • 新增 .dockercfg 文件
  • 移除關於 Gentoo 安裝筆記中關於 #1422 的變通作法
  • 修復 -v 選項的說明文字
  • 修復 Ping 端點文件
  • 修復 ADD 指令文件中的參數名稱
  • 修復變更紀錄中的反諷式拼字錯誤
  • postgres 範例中的各種指令修正
  • 記錄如何編輯與發布文件
  • postgresql_service.rst 的細微更新
  • 向貢獻者釐清 LGTM 流程
  • 更正套件名稱中的錯誤
  • 記錄 vagrant up 實際執行的動作
  • 改進文件搜尋結果
  • 清理 API 1.5 文件中的空白
  • 在 MAINTAINER 範例電子郵件中使用角括號
  • 更新 archlinux.rst
  • 更改文件為新樣式,包含版本切換器
  • 格式化,新增關於多行 json 的資訊
  • 改進 registry 和 index REST API 文件
  • 移除已棄用的升級參照 docker-latest.tgz(自 0.5.3 以來未更新)
  • 更新 Gentoo 安裝文件(現已進入 portage tree)
  • 為貢獻者與維護者清理與重組文件與工具
  • 將 protocoll 拼寫錯誤修正為 protocol

貢獻

  • 新增 @honza 提供的 Dockerfiles vim 語法高亮
  • 新增 mkimage-arch.sh
  • 重組貢獻的補完指令碼以新增 zsh 補完

Hack

其他

  • 建置器:若 mergeConfig 回傳錯誤則中止建置,並修復重複的錯誤訊息
  • 封裝:移除已棄用的封裝目錄
  • Registry:登入時使用正確的驗證設定
  • Registry:修復錯誤訊息,使其與正規表示式一致

0.6.3 (2013-09-23)

打包

  • 為 ubuntu 套件安裝時新增 'docker' 群組
  • 更新 tar vendor 依賴項
  • 透過 HTTPS 下載 apt 金鑰

執行時期

  • 僅在非綁定掛載的卷上複製並更改權限
  • 允許使用多個 volumes-from
  • 修復來自 STDIN 的 HTTP 匯入

文件

  • 更新關於建置後提取 docker 二進位檔的章節
  • 為新建置流程更新開發環境文件
  • 從文件中移除 'base' 映像檔

其他

  • 客戶端:修復 detach 問題
  • Registry:更新正規表示式以符合 index

0.6.2 (2013-09-17)

執行時期

  • 新增 domainname 支援
  • 使用 path.Match 實作映像檔篩選
  • 移除不必要的警告
  • 移除 os/user 依賴
  • 僅在設定存在時才掛載主機名稱檔案
  • docker login 指令內處理訊號
  • UID 與 GID 現在也應用於儲存卷
  • docker start 在錯誤時設定錯誤代碼
  • docker run 設定與所啟動處理程序相同的錯誤代碼

建置器

  • 新增 -rm 選項以移除中間容器
  • 允許 RUN 指令使用多行

Registry

  • 實作私有 registry 登入
  • 修復推入問題

其他

  • Hack:Vendored 所有依賴項
  • Remote API:升級至 v1.5
  • 封裝:將 hack/make.sh 分割為小型指令碼,每個「bundle」一個:test、binary、ubuntu 等
  • 文件:一般改進

0.6.1 (2013-08-23)

Registry

  • 在 API 呼叫中將 "meta" 標頭傳遞給 registry

打包

  • 使用新建置工具搭配正確的 upstart 指令碼
  • 使用 libffi-dev,不再從原始碼建置
  • 移除重複的 mercurial 安裝指令

0.6.0 (2013-08-22)

執行時期

  • 新增 lxc-conf 旗標以允許自訂 lxc 選項
  • 新增設定工作目錄的選項
  • 新增映像檔名稱至 LogEvent 測試
  • 新增 -privileged 旗標及相關測試、文件與範例
  • 為 /container/ 新增 websocket 支援/attach/ws
  • 當 net.ipv4.ip_forwarding = 0 時新增警告
  • 新增主機名稱至環境
  • docker version 中新增最後穩定版本
  • 修復並行拉取(parallel pull)中的競爭條件
  • 修復 Graph ByParent() 以產生每個父映像檔的子映像檔清單
  • 修復錯字:fmt.Sprint -> fmt.Sprintf
  • 修復 docker build 中的微小 \n 錯誤
  • 修復 "Inject dockerinit at /.dockerinit"
  • 修復 #910。在 docker info 輸出中列印使用者名稱
  • 為 dockerbuilder 使用 Go 1.1.2
  • 在 channels 上使用 ranged for 迴圈
  • 在 server.ImageDelete 中使用 utils.ParseRepositoryTag 代替 strings.Split(name, ":")
  • 改進 CMD、ENTRYPOINT 與 attach 文件
  • 改進 socket 錯誤的連接訊息
  • 僅在需要時載入 authConfig 並修復無用的 WARNING
  • 映像檔缺失時顯示所使用的標籤
  • 建立儲存卷前套用 volumes-from
  • 使 docker run 處理 SIGINT/SIGTERM
  • 防止 .dockercfg 不可讀時崩潰
  • 安裝指令碼應透過 https 而非 http 獲取
  • API,問題 1471:使用群組進行 socket 權限管理
  • 正確偵測 IPv4 轉發
  • 將 /dev/shm 掛載為 tmpfs
  • 將 get.docker.io 從 http 切換至 https
  • 讓 userland proxy 處理容器綁定的流量
  • 更新 Docker CLI 以指定 "Host" 標頭的值
  • 變更網路範圍以避免與 EC2 DNS 衝突
  • ping registry 時減少連接與讀取逾時時間
  • 並行拉取
  • 處理 ip route 顯示無遮罩 IP 位址的情況
  • 允許無 CMD 的 ENTRYPOINT
  • 解析 FQN 儲存庫名稱時始終將 localhost 視為網域名稱
  • 重構 checksum

文件

  • 新增 MongoDB 映像檔範例
  • 新增建立與使用 docker 群組的說明
  • 在文件範例與安裝中新增 sudo
  • 新增 ufw 文件
  • 新增關於 ps -a 的參照
  • 新增關於 Docker 優於 LXC 之高階工具的資訊
  • 修復 docker run -dns 文件中的錯字
  • 修復 ubuntu 安裝指南中的錯字
  • 修復關於新增 docker 群組的文件
  • 更新預設 -H 文件
  • 更新 readme 中關於建置的依賴項
  • 更新 amazon.rst 以解釋在 ec2 上執行 Docker 無需 Vagrant
  • 文件中的 PostgreSQL 服務範例
  • 建議預設安裝 linux-headers
  • 更改 twitter 帳號
  • 釐清 Amazon EC2 安裝
  • 'Base' 映像檔已棄用,文件中不應再參照
  • 移動關於正式支援核心的注意事項
  • 解決 Safari 中標誌被壓縮的問題

建置器

  • 在 Dockerfile 中新增 USER 指令
  • 新增 Buildfile 的 workdir 支援
  • 新增 docker build 的 no cache 選項
  • 修復 docker build 和 docker events 輸出
  • 僅將已知指令視為建置步驟
  • 確保建置內的 ENV 指令每次皆執行提交
  • 禁止 docker build ADD 中的特定路徑
  • 在建置用法中使用儲存庫名稱(及選擇性標籤)
  • 確保 ADD 將建立的所有內容皆為 0755

Remote API

Hack

打包

  • Docker-brew 0.5.2 支援與記憶體佔用降低
  • 將新的 docker 依賴項新增至 docker-ci
  • 還原 "docker.upstart: avoid spawning a sh process"
  • Docker-brew 與 Docker 標準函式庫
  • 使用 docker 發布 docker
  • 修復 get.docker.io 產生的 upstart 指令碼
  • 啟用文件產生 manpages 功能
  • 還原 Vagrant 中綁定 daemon 至 0.0.0.0

Register

  • 改進 auth push
  • Registry 單元測試 + mock registry

Tests

  • 改進 TestKillDifferentUser 以防止 buildbot 逾時
  • 修復 TestBindMounts 中的錯字(runContainer 在無映像檔時呼叫)
  • 改進 TestGetContainersTop 使其不依賴 sleep
  • 放寬 lo 介面測試,允許 iface index != 1
  • 將 registry 功能測試新增至 docker-ci
  • 在 server 和 utils 中新增一些測試

其他

  • Contrib:bash 補完指令碼
  • 客戶端:新增 docker cp 指令與複製 API 端點,以將容器檔案/資料夾複製到主機
  • 僅 attached 至 stdin 時,不從 stdout 讀取

0.5.3 (2013-08-13)

執行時期

  • 使用 docker 群組進行 socket 權限管理
  • 在 upstart 指令碼內 spawn shell
  • 處理 ip route 顯示無遮罩 IP 位址的情況
  • 新增主機名稱至環境

建置器

  • 確保建置內的 ENV 指令每次皆執行提交

0.5.2 (2013-08-08)

  • 建置器:禁止 docker build ADD 中的特定路徑
  • 執行階段:更改網路範圍以避免與 EC2 DNS 衝突
  • API:將 daemon 預設改為監聽 unix socket

0.5.1 (2013-07-30)

執行時期

  • docker top 中新增 ps 參數
  • 新增容器 ID 檔案支援 (類似 pidfile)
  • 在預設環境中新增 container=lxc
  • 使用 docker run -ndocker -d -b=none 支援無網路容器
  • Stdout/stderr 紀錄現在與 JSON 儲存於同一個檔案中
  • 預設分配 /16 IP 範圍,並回退至 /24。嘗試 12 個範圍而非 3 個
  • 將 .dockercfg 格式變更為 json 並支援多個驗證遠端
  • 不覆蓋設定中的 volumes
  • 修復 EXPOSE 覆蓋問題

API

  • Docker 客戶端現在設定 useragent (RFC 2616)
  • 新增 /events 端點

建置器

  • ADD 指令現在理解 URL
  • CmdAdd 與 CmdEnv 現在尊重 Dockerfile 設定的 ENV 變數
  • 在 ADD 指令內以 755 而非 700 建立目錄

Hack

0.5.0 (2013-07-17)

執行時期

  • 使用 'docker top' 列出容器內執行的所有處理程序
  • 使用 'docker run -v' 可將主機目錄掛載為儲存卷
  • 容器可暴露公共 UDP 埠號 (例如 '-p 123/udp')
  • 可選擇指定精確的公共埠號 (例如 '-p 80:4500')
  • 'docker login' 支援額外選項
  • 提交映像檔時不儲存容器的主機名稱

Registry

  • 受 Go 封裝慣例啟發的新映像檔命名配置,允許任意組合 registry
  • 修復將映像檔上傳至私有 registry 時的問題

建置器

  • ENTRYPOINT 指令為容器設定預設二進位進入點
  • VOLUME 指令將容器的一部分標記為持久化資料
  • 'docker build' 預設顯示建置的完整輸出

0.4.8 (2013-07-01)

  • 建置器:新的建置操作 ENTRYPOINT 新增可執行的進入點至容器。- 執行階段:修復導致 'docker run -d' 不再列印容器 ID 的錯誤
  • 測試:修復測試套件中的問題

0.4.7 (2013-06-28)

Remote API

執行時期

  • 改進核心版本偵測
  • 使用 'docker run -b' 可將主機目錄掛載為儲存卷
  • 修復僅 attach 至 stdin 時的問題
  • 使用 'tar --numeric-owner' 以避免多個主機間的 uid 不匹配

Hack

其他

  • Registry:推入/拉取自訂 registry 更簡單
  • 文件:新增術語章節

0.4.6 (2013-06-22)

  • 執行階段:修復導致建立空映像檔(與儲存卷)時崩潰的錯誤

0.4.5 (2013-06-21)

  • 建置器:'docker build git://URL' 可獲取並建置遠端 git 儲存庫
  • 執行階段:'docker ps -s' 可選列印容器大小
  • 測試:改進並簡化
  • 執行階段:修復 0.4.3 引入的迴歸錯誤,導致 logs 指令失敗
  • 建置器:修復使用 ADD 搭配單一一般檔案時的迴歸錯誤

0.4.4 (2013-06-19)

  • 建置器:修復 0.4.3 引入的迴歸錯誤,導致新客戶端上的建置失敗

0.4.3 (2013-06-19)

建置器

  • 本地檔案的 ADD 將自動偵測 tar 封存檔並解壓縮
  • ADD 改進:使用 tar 進行複製 + 自動解壓縮本地封存檔
  • ADD 使用 tar/untar 進行複製而非呼叫 'cp -ar'
  • 修復 ADD 的行為,使其(大部分)向後相容、可預測且有完整文件
  • 修復 ADD 若為第一個指令時導致建置失敗的錯誤
  • 'docker build' 的輸出更美觀

執行時期

  • 移除 bsdtar 依賴
  • 新增 unix socket 與多個 -H 支援
  • 防止移除執行中的容器
  • 使用 go1.1 cookiejar
  • 修復從執行中 TTY 容器 detach 的問題
  • 禁止對單一映像檔/儲存庫進行並行推入/拉取,修復 #311
  • 修復 Run 指令在 attach 時的競爭條件

用戶端

  • 拉取時進度條顯示人類可讀大小
  • 修復 docker version 的 git commit 輸出

API

  • 在 History API 呼叫上傳送所有標籤
  • 在 history 指令中新增標籤查詢,修復 #882

文件

  • 修復 irc bouncer 範例中遺失的指令

0.4.2 (2013-06-17)

  • 封裝:增加版本號以解決 Ubuntu 錯誤

0.4.1 (2013-06-17)

Remote Api

  • 新增旗標以啟用跨網域請求
  • 在 docker ps 和 docker images 中新增映像檔與容器大小

執行時期

  • 使用 'docker -d -dns' 設定主機層級的 dns 設定
  • 偵測故障的 DNS 設定並以公共預設值取代
  • 允許 docker run:
  • 您現在可以指定公共埠號 (例如: -p 80:4500)
  • 改進映像檔移除以回收未引用的父層級

用戶端

  • 允許 inspect 中有多個參數
  • docker run 的 hijack 之前列印容器 id

Registry

  • 對儲存庫名稱新增正規表示式檢查
  • 將驗證移至客戶端
  • 移除 pull 時的登入檢查

其他

  • Vagrantfile:在 vagrantfile 的 port_forward 中新增 rest api 埠號
  • 升級至 Go 1.1
  • 建置器:Dockerfile 最後一行若未以 \n 結尾,不應忽略

0.4.0 (2013-06-03)

建置器

  • 引入建置器(Builder)
  • 'docker build' 可從包含 Dockerfile 的來源儲存庫中,逐層建置容器

Remote API

執行時期

  • 各類可靠性與可用性改進

0.3.4 (2013-05-30)

建置器

  • 'docker build' 可從包含 Dockerfile 的來源儲存庫中,逐層建置容器
  • 'docker build -t FOO' 將標籤 FOO 套用至新建置的容器

執行時期

  • 互動式 TTY 可正確處理視窗大小調整
  • 修復層級間設定合併的方式

Remote API

文件

  • 改進安裝說明

0.3.3 (2013-05-23)

  • Registry:修復推入迴歸錯誤
  • 各類錯誤修復

0.3.2 (2013-05-09)

Registry

  • 改進 checksum 流程
  • 推入時使用大小資訊以獲取良好的進度條
  • 若實際封存檔存在則使用之,以加快推入速度
  • 修復推入時錯誤 400

執行時期

  • 提交時儲存實際封存檔

0.3.1 (2013-05-08)

建置器

  • 在 docker builder 內實作自動執行能力
  • 為 docker builder 新增快取
  • 以原生 API 作為頂層指令新增對 docker builder 的支援
  • 在 docker builder 內實作 ENV
  • 建立前檢查指令是否存在,並針對該情況新增單元測試
  • 使用任何空格而非 tab

執行時期

  • 在偵錯資訊中新增 go 版本
  • 核心版本 - 若 flavor 為空則不顯示短橫線

Registry

  • 新增 docker search 頂層指令以搜尋儲存庫
  • 修復特定標籤官方映像檔的拉取
  • 修復以不同使用者登入並嘗試推入時的問題
  • 改進 checksum - 非同步計算

映像

  • 將映像檔圖形輸出為 dot (graphviz)
  • 修復 ByParent 函式

文件

  • 新的簡介與高階概覽
  • 新增 docker builder 的文件
  • Docker 文件 CSS 修復,使 REST API 文件呈現更好
  • 修復 CouchDB 範例頁面標頭錯誤
  • 修復 README 格式

其他

  • 網站:新的高階概覽
  • 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
  • Registry:實作新 registry

0.2.2 (2013-05-03)

  • 支援資料卷(data volumes)('docker run -v=PATH')
  • 共用容器間的資料卷 ('docker run -volumes-from')
  • 改進文件
  • 升級至 Go 1.0.3
  • 為貢獻者進行開發環境的各類升級

0.2.1 (2013-05-01)

  • 'docker commit -run' 將層級與預設執行階段選項(指令、埠號等)綁定
  • 改進 Vagrant 上的安裝流程
  • 新 Dockerfile 操作: "maintainer"
  • 新 Dockerfile 操作: "expose"
  • 新 Dockerfile 操作: "cmd"
  • 用於建置 Debian 基礎層級的 Contrib 指令碼
  • 'docker -d -r': daemon 啟動時重啟崩潰的容器
  • 執行階段:改進測試覆蓋率

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)

  • 容器埠號可在 localhost 使用
  • 'docker ps' 顯示已分配的 TCP 埠號
  • 貢獻者可執行 'make hack' 以啟動持續整合 VM
  • 精簡 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 模擬的完整支援
  • 使用逸出序列 C-p C-q 從 TTY 工作階段 detach
  • 各類錯誤修復與穩定性改進
  • 介面微小改進
  • 自動建立我們自己的 bridge 介面 '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]]]' 進行選擇性 attach
  • 各類錯誤修復與穩定性改進
  • 介面調整
  • 推入/拉取時的進度條
  • 預設使用 XZ 壓縮
  • 使 IP 分配器改為延遲分配

0.1.1 (2013-03-31)

  • 顯示簡短 ID 以利使用
  • 穩定處理程序管理
  • 層級可包含提交訊息
  • 簡化的 'docker attach'
  • 修復重新 attach 的支援
  • 各類錯誤修復與穩定性改進
  • 執行時自動下載
  • 推入時自動登入
  • 強化文件

0.1.0 (2013-03-23)

初步公開發布

  • 實作 registry 以進行推入/拉取映像檔
  • TCP 埠號分配
  • 修復 Linux 上的 termcaps
  • 新增文件
  • 使用 Vagrantfile 新增 Vagrant 支援
  • 新增單元測試
  • 新增儲存庫/標籤以簡化映像檔管理
  • 改進層級實作
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.