Docker Engine 以前的版本
1.13.1 (2017-02-08)
重要在以 `devicemapper` 為預設儲存驅動的 Linux 發行版上,現在預設使用 `overlay2` 或 `overlay`(如果核心支援)。要使用 `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
要手動刪除所有外掛並解決此問題,請執行以下步驟:
- 從 ` /var/lib/docker/plugins/` 中刪除 `plugins.json`。
- 重新啟動 Docker。驗證 Docker 守護程序啟動時沒有錯誤。
- 重新安裝您的外掛。
貢獻
遠端 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
1.13.0 (2017-01-18)
重要在以 `devicemapper` 為預設儲存驅動的 Linux 發行版上,現在預設使用 `overlay2` 或 `overlay`(如果核心支援)。要使用 `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
要手動刪除所有外掛並解決此問題,請執行以下步驟:
- 從 ` /var/lib/docker/plugins/` 中刪除 `plugins.json`。
- 重新啟動 Docker。驗證 Docker 守護程序啟動時沒有錯誤。
- 重新安裝您的外掛。
構建器
- 修復 Dockerfile 解析器在轉義後空行的問題 #24725
- 在 `docker build` 上新增步驟編號 #24978
- 現在允許使用未使用的 build-args。將顯示警告而不是錯誤和失敗的構建 #27412
- 修復 Windows 上的構建器快取問題 #27805
貢獻
- 新增在 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_keys` 下 docker/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
- 將 Docker 標籤用作 journald 欄位名時進行清理 #23725
- 修復 `docker logs --tail` 返回行數少於預期的問題 #28203
- Splunk 日誌驅動:效能和可靠性改進 #26207
- Splunk 日誌驅動:可配置格式和跳過連線驗證 #25786
網路
- 新增 `--attachable` 網路支援,使 `docker run` 能夠在 swarm-mode 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
- 修復檢查網路顯示帶有掩碼的閘道器 #25564
- 修復橋接中多個地址可能導致 `--fixed-cidr` 沒有正確地址的問題 #26659
- 為 `docker network inspect` 新增建立時間戳 #26130
外掛
- 新增支援動態重新載入授權外掛 #22770
- 在 `docker plugin ls` 中新增描述 #25556
- 為 `docker plugin inspect` 新增 `-f`/`--format` #25990
- 新增 `docker plugin create` 命令 #28164
- 將請求的 TLS 對等證書傳送給授權外掛 #27383
- 在 swarm-mode 中支援全域性範圍的網路和 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
- 為 service/node/stack ps 輸出新增 `--no-trunc` #25337
- 將 Logs 新增到 `ContainerAttachOptions`,以便 Go 客戶端可以請求在連線過程中檢索容器日誌 #26718
- 允許客戶端與舊伺服器通訊 #27745
- 客戶端通知使用者正在進行容器刪除 #26074
- 不允許在服務終結點中同時請求多種模式 #26643
- 為 `/containers/create` API 新增功能,以更精細和安全的方式指定掛載 #22373
- 為 `network ls` 和 `volume ls` 新增 `--format` 標誌 #23475
- 允許頂層 `docker inspect` 命令檢查任何型別的資源 #23614
- 為 `docker run` 和 `docker create` 新增 `--cpus` 標誌以控制 CPU 資源,併為 `HostConfig` 新增 `NanoCPUs` #27958
- 允許在 `docker run` 或 `docker create` 中取消設定 `--entrypoint` #23718
- 透過新增 `docker image` 和 `docker container` 命令來重構 CLI 命令,以實現更高的一致性 #26025
- 從 `service ls` 輸出中刪除 `COMMAND` 列 #28029
- 為 `docker events` 新增 `--format` #26268
- 為 `docker run` 新增 `--dns-option` #28186
- 將 Image 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
- 在 `dockerd` 和 `docker run` 上添加布爾標誌 `--init`,以使用 tini 這個殭屍回收初始化程序作為 PID 1 #26061 #28037
- 新增新的守護程序標誌 `--init-path`,以允許配置 `docker-init` 二進位制檔案的路徑 #26941
- 新增支援在配置中即時重新載入不安全登錄檔 #22337
- 在 Windows 守護程序上新增對 `storage-opt size` 的支援 #23391
- 透過將 `docker run --rm` 從客戶端移動到守護程序來提高其可靠性 #20848
- 新增對 `--cpu-rt-period` 和 `--cpu-rt-runtime` 標誌的支援,允許容器在核心中啟用 `CONFIG_RT_GROUP_SCHED` 時執行即時執行緒 #23430
- 修復 `service tasks --filter` 中的部分/完整過濾器問題 #24850
- 允許引擎在使用者名稱空間內執行 #25672
- 修復使用 devicemapper graphdriver 時裝置延遲刪除和恢復裝置之間的競爭條件 #23497
- 新增 Windows 中 `docker stats` 支援 #25737
- 當 `--userns=host` 時,允許使用 `--pid=host` 和 `--net=host` #25771
- (實驗性)為基本的 `container`、`image` 和 `daemon` 操作新增指標 (Prometheus) 輸出 #25820
- 修復 `docker stats` 中 `NetworkDisabled=true` 的問題 #25905
- 新增 Windows 中 `docker top` 支援 #25891
- 記錄 exec 程序的 pid #27470
- 新增透過 `getent` 查詢使用者/組的支援 #27599
- 新增新的 `docker system` 命令,帶有 `df` 和 `prune` 子命令用於系統資源管理,以及 `docker {container,image,volume,network} prune` 子命令 #26108 #27525 / #27525
- 修復在使用 devicemapper 且 ENOSPC 時將 xfs max_retries 設定為 0 導致容器無法停止或終止的問題 #26212
- 修復在 CentOS 上使用 devicemapper 時 `docker cp` 無法複製到容器卷目錄的問題 #28047
- 提升 overlay(2) graphdriver #27932
- 新增 `--seccomp-profile` 守護程序標誌以指定覆蓋預設值的 seccomp 配置檔案的路徑 #26276
- 在 `docker exec -t` 上新增 `TERM` 環境變數 #26461
- 在 `docker kill` 時遵守容器的 `--stop-signal` 設定 #26464
Swarm 模式
- 在 `docker service inspect --pretty` 的輸出中顯示端點模式 #26906
- 透過縮短任務名稱中的服務 ID,使 `docker service ps` 輸出更易於理解 #28088
- 使 `docker node ps` 預設為當前節點 #25214
- 為 service create 新增 `--dns`、`--dns-opt` 和 `--dns-search`。 #27567
- 為 `docker service update` 新增 `--force` #27596
- 為 `docker service create` 和 `docker 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
- 為 `docker service update` 新增 `--update-max-failure-ratio`、`--update-monitor` 和 `--rollback` 標誌 #26421
- 修復在容器內執行的 `docker swarm init` 上地址自動發現問題 #26457
- 為 `docker node rm --force` 和 `docker swarm leave --force` 新增短 ( `-f` ) 標誌 #28196
- 新增選項以自定義 Raft 快照(`--max-snapshots`、`--snapshot-interval`) #27997
- 如果透過摘要固定,則不重新拉取映象 #28265
卷
- 在 `docker volume rm` 中新增 `--force` 標誌,以強制清除已刪除卷的資料 #23436
- 增強 `docker volume inspect` 以顯示建立卷時使用的所有選項 #26671
- 新增對本地 NFS 卷的支援以解析主機名 #27329
安全性
棄用
- 將 `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
- 棄用 `docker pull` 上的 `repo:shortid` 語法 #27207
- 棄用沒有 `d_type` 的底層檔案系統用於 overlay 和 overlay2 儲存驅動 #27433
- 棄用 Dockerfile 中的 `MAINTAINER` #25466
- 棄用端點 `/images/json` 的 `filter` 引數 #27872
- 棄用設定重複的引擎標籤 #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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
注意當您指定 `--ipv6` 選項時,Docker 1.12.5 將正確驗證是否提供了 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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
注意當您指定 `--ipv6` 選項時,Docker 1.12.5 將正確驗證是否提供了 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` 中出現 panic 的問題 #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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
執行時
- 修復卷元資料未移除的問題 #29083
- 非同步關閉流以防止持有容器鎖 #29050
- 修復新建立的容器卷的 selinux 標籤 #29050
- 移除主機名驗證 #28990
- 修復由 IO 競爭引起的死鎖 #29095 #29141
- 如果容器正在重新啟動,則返回空統計資訊 #29150
- 修復卷儲存鎖 #29151
- 確保 API 中的狀態程式碼一致 #29150
- 修復 overlay2 中不透明目錄許可權不正確的問題 #29093
- 檢測外掛內容並在 `docker pull` 上報錯 #29297
Swarm 模式
- 更新 Swarmkit #29047
- orchestrator/global: 修復更新時的死鎖 docker/swarmkit#1760
- 在領導者切換後,為現有網路保留 vxlan id docker/swarmkit#1773
- 拒絕未命名為 "default" 的 swarm 規範 #29152
網路
- 更新 libnetwork #29004 #29146
- 修復嵌入式 DNS 中的 panic docker/libnetwork#1561
- 修復在全域性範圍網路上傳遞 `--link-local-ip` 時解組 panic docker/libnetwork#1564
- 修復網路外掛返回 nil StaticRoutes 時出現 panic 的問題 docker/libnetwork#1563
- 修復 `osl.(*networkNamespace).DeleteNeighbor` 中的 panic docker/libnetwork#1555
- 修復 swarm 網路併發 map 讀/寫中的 panic docker/libnetwork#1570
- 允許在容器內執行 docker 時使用加密網路 docker/libnetwork#1502
- 不阻止 IPv6 池的自動分配 docker/libnetwork#1538
- 設定 netlink 呼叫的超時時間 docker/libnetwork#1557
- 將網路本地儲存超時增加到一分鐘 docker/libkv#140
- 修復 `libnetwork.(*sandbox).execFunc` 中的 panic docker/libnetwork#1556
- 對於內部網路遵守 icc=false docker/libnetwork#1525
日誌記錄
- 更新 syslog 日誌驅動 #29150
貢獻
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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
執行時
- 修復容器中環境能力的使用 (CVE-2016-8867) #27610
- 防止 Windows 中 libcontainerd 死鎖 #27136
- 修復 CopyFileWithTar 中的錯誤報告 #27075
Swarm 模式
- 修復重啟策略的轉換 #27062
- 更新 Swarmkit #27554
- 避免重新啟動已重新啟動的任務 docker/swarmkit#1305
- 當釋出埠使用不同協議時允許重複 docker/swarmkit#1632
- 允許服務上分配多個隨機發布埠 docker/swarmkit#1657
- 修復初始化時發生分配時的 panic docker/swarmkit#1651
網路
- 更新 libnetwork #27559
- 修復序列化沙箱到字串時的競爭 docker/libnetwork#1495
- 修復刪除期間的競爭 docker/libnetwork#1503
- 在橋接驅動中連線撤銷時重置端點埠資訊 docker/libnetwork#1504
- 修復網路程式碼中的死鎖 docker/libnetwork#1507
- 修復負載均衡器狀態中的競爭 docker/libnetwork#1512
日誌記錄
- 更新 fluent-logger-golang 到 v1.2.1 #27474
貢獻
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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
執行時
- 修復由於過濾 `docker ps` 的競爭條件引起的 panic #26049
- 實現重試邏輯,以防止在使用 aufs 儲存驅動時出現 "Unable to remove filesystem" 錯誤 #26536
- 如果啟用了 `dm.use_deferred_removal`,則防止 devicemapper 移除裝置符號連結 #24740
- 修復 CLI 在使用無效選項執行命令時未返回正確退出程式碼的問題 #26777
- 修復由於健康檢查中 stdout / stderr 處理錯誤引起的 panic #26507
- 修復 exec 的子程序處理 #26874
- 修復 HEALTHCHECK CMD 的 exec 形式 #26208
網路
- 修復 armv5 上守護程序啟動 panic #24315
- Vendor libnetwork #26879 #26953
- 避免在代理加入失敗時提前返回 docker/libnetwork#1473
- 修復服務釋出埠清理問題 docker/libetwork#1432 docker/libnetwork#1433
- 從暫時性 gossip 故障中正確恢復 docker/libnetwork#1446
- 消除 gossip 叢集已知節點名稱的歧義,以避免節點名稱衝突 docker/libnetwork#1451
- 遵守使用者為 gossip 提供的監聽地址 docker/libnetwork#1460
- 允許透過釋出埠在同一主機上的服務之間進行可達性 docker/libnetwork#1398
- 將入口沙箱名稱從隨機 ID 更改為 `ingress_sbox` docker/libnetwork#1449
- 在入口網路中停用服務發現 docker/libnetwork#1489
Swarm 模式
- 修復節點加入叢集時遠端檢測節點地址的問題 #26211
- Vendor SwarmKit #26765
- 在狀態更新失敗後彈跳會話 docker/swarmkit#1539
- 修復可能的 raft 死鎖 docker/swarmkit#1537
- 修復服務更新時沒有端點的 panic 和端點洩漏 docker/swarmkit#1481
- 如果在 `service create` 或 `service update` 上釋出了兩次相同的埠,則產生錯誤 docker/swarmkit#1495
- 修復服務更改未被檢測到導致服務未更新的問題 docker/swarmkit#1497
- 不允許在 ingress 網路上建立服務 docker/swarmkit#1600
貢獻
- 更新 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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo 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-add` 和 `service update --network-rm` 標誌,因為此功能尚未在 1.12 中實現,但意外新增到 1.12.0 中的客戶端 #25646
貢獻
網路
- 修復 Swarm 模式下 Docker overlay 驅動中容器無法透過主機名訪問的問題 #25603 #25648
- 修復帶有釋出埠的服務上的隨機網路問題 #25603
- 修復擴充套件和收縮後服務間通訊不可靠的問題 #25603
- 修復刪除節點上所有任務並重新新增它們後與其它服務的連線中斷的問題 #25603
- 修復任務啟動失敗導致競爭,從而產生 `network xxx not found` 錯誤,掩蓋實際錯誤的問題 #25550
- 放寬對使用不符合 RFC 2782 格式的 SRV 記錄的外部服務的 SRV 記錄驗證 #25739
外掛(實驗性)
執行時
- 在守護程序日誌中掩蓋加入令牌 #25346
安全性
- 將 `/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
卷
- 在守護程序重啟後持久化本地卷選項 #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 插入檔案,並且 `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://`(在主單元檔案和存在的任何插入檔案中)。
進行這些更改後,執行 `sudo systemctl daemon-reload` 和 `sudo systemctl restart docker` 以重新載入更改並(重新)啟動 docker 守護程序。
重要對於 Docker 1.12,Linux `docker` 安裝現在有兩個額外的二進位制檔案:`dockerd` 和 `docker-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
日誌記錄
- Syslog 日誌驅動現在支援 DGRAM socket #21613
- 為 `docker logs` 新增 `--details` 選項,以顯示日誌標籤 #21889
- 啟用 syslog 記錄器以訪問 env 和 labels #21724
- 一個額外的 syslog-format 選項 `rfc5424micro`,允許 syslog 時間戳具有微秒解析度 #21844
網路
- 使用 IPVS 進行內建的基於虛擬 IP 的內部和入口負載平衡 #23361
- 使用入口 overlay 網路進行路由網格 #23361
- 使用加密控制平面和資料平面保護多主機 overlay 網路 #23361
- MacVlan 驅動程式不再是實驗性功能 #23524
- 為 `network ls` 新增 `driver` 過濾器 #22319
- 向 `docker ps --filter` 新增 `network` 過濾器 #23300
- 為 `create`、`run` 和 `network connect` 新增 `--link-local-ip` 標誌,以指定容器的鏈路本地地址 #23415
- 新增網路標籤過濾器支援 #21495
- 在 Swarm 模式下移除對 Overlay 網路的外部 KV-Store 依賴 #23361
- 新增容器的 short-id 作為預設網路別名 #21901
- `run` 選項 `--dns` 和 `--net=host` 不再互斥 #22408
- 修復重新命名帶有生成名稱的容器時出現的 DNS 問題 #22716
- 允許 `network inspect -f {{.Id}}` 和 `network inspect -f {{.ID}}` 以解決 inspect 輸出的不一致性 #23226
外掛(實驗性)
- 新的 `plugin` 命令,用於管理外掛,帶有 `install`、`enable`、`disable`、`rm`、`inspect`、`set` 子命令 #23446
遠端 API (v1.24) & 客戶端
- 將二進位制檔案拆分為兩個:`docker`(客戶端)和 `dockerd`(守護程序) #20639
- 為 `docker images --filter` 新增 `before` 和 `since` 過濾器 #22908
- 為 `docker search` 新增 `--limit` 選項 #23107
- 為 `docker search` 新增 `--filter` 選項 #22369
- 向 `docker info` 輸出新增安全選項 #21172 #23520
- 將不安全的登錄檔新增到 `docker info` 輸出 #20410
- 使用 TLS 使用者資訊擴充套件 Docker 授權 #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` 守護程序標誌)並在 `create` 和 `run` 上使用 `--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
- 在
create
和run
命令中新增--storage-opt
標誌,允許在 devicemapper 上設定size
#19367 - 新增
--oom-score-adjust
守護程序標誌,預設值為-500
,使守護程序在容器之前被殺死的可能性降低 #24516
- 取消在
run
、build
、create
、update
命令上對--cpu-shares
短別名-c
的棄用 #22621 - 阻止在 eCryptfs 掛載上使用 aufs 和 overlay graphdrivers #23121
- 修復 tmpfs 掛載順序問題 #22329
- 建立的容器不再列在
docker ps -a -f exited=0
中 #21947 - 修復容器停留在“正在移除”狀態的問題 #22423
- 修復了在 run/create 命令中未指定命令時返回 HTTP 500 而不是 400 的錯誤 #22762
- 修復了
--detach-keys
的 bug,其中與分離鍵字首匹配的輸入未被保留 #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
命令,透過init
、join
、join-token
、leave
、update
子命令管理叢集 #23361 #24823 - 新增
service
命令,透過create
、inspect
、update
、rm
、ps
子命令管理叢集範圍的服務 #23361 #25140 - 新增
node
命令,透過accept
、promote
、demote
、inspect
、update
、ps
、ls
和rm
子命令管理節點 #23361 #25140 - (實驗性) 新增
stack
和deploy
命令,用於管理和部署多服務應用程式 #23522 #25140
卷
- 掛載/解除安裝操作現在接收一個不透明的 ID,允許卷驅動程式區分兩個呼叫者 #21015
棄用
- 環境變數
DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE
和DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE
已分別重新命名為DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE
和DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE
#22574 - 移除已棄用的
syslog-tag
、gelf-tag
、fluentd-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)
網路
執行時
- 修復執行
docker build
時可能發生的恐慌 (#23032) - 修復
--user
引數的解釋問題 (#22998) - 修復阻止容器統計資訊正確報告的錯誤 (#22955)
- 修復守護程序重啟後阻止容器重啟的問題 (#22947)
- 修復在 Ubuntu 16.04 上執行 32 位二進位制檔案時出現的問題 (#22922)
- 修復影像刪除和容器附加時可能發生的死鎖 (#22918)
- 修復守護程序重啟後,如果容器依賴於容器化的叢集儲存,則容器無法啟動的問題 (#22561)
- 修復在 CentOS 上使用 devicemapper 時
docker ps
掛起的問題 (#22168, #23067) - 修復使用 devicemapper 時無法
docker exec
到容器中的錯誤 (#22168, #23067)
1.11.1 (2016-04-26)
分發
- 修復 schema2 manifest media type 為
application/vnd.docker.container.image.v1+json
型別 (#21949)
文件
- 新增 1.11.0 引入的更改的缺失 API 文件 (#22048)
構建器
- 將作為引數傳遞給
docker build
的標籤作為隱式LABEL
命令附加到處理後的Dockerfile
的末尾 (#22184)
網路
執行時
- 修復透過配置檔案無法重新載入標籤配置的錯誤 (#22299)
- 修復了掛載
/var/run
的容器會阻止其他容器被移除的迴歸問題 (#22256) - 修復無法同時更新
memory-swap
和memory
值的問題 (#22255) - 修復了 1.11.0 版本中的一個迴歸問題,即如果未提供
serveraddress
,/auth
端點將不會初始化 (#22254) - 新增取消計劃重啟時容器臨時檔案的清理功能 (#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 個二進位制檔案組成 (
docker
,docker-containerd
,docker-containerd-shim
和docker-runc
)。如果您有依賴docker
是單個靜態二進位制檔案的指令碼,請務必更新它們。與守護程序的互動保持不變,其他二進位制檔案的使用應該是透明的。Windows Docker 安裝仍然是單個二進位制檔案docker.exe
。
構建器
- 修復 Docker 在處理
WORKDIR
命令時未使用正確 uid/gid 的錯誤 (#21033) - 修復 userns 的複製操作未使用正確 uid/gid 的錯誤 (#20782, #21162)
客戶端
- 已棄用安全選項的
:
分隔符。應使用=
代替 (#21232)
- 修復了
docker stats --no-stream
輸出可能全部為 0 的問題 (#20803) - 修復了某些新啟動的容器不會出現在正在執行的
docker stats
命令中的錯誤 (#20792)
- linux-cgo 終端不再啟用後處理 (#20587)
- Docker 現在禁止使用空使用者名稱登入(空格會被修剪)(#19806)
- 如果儲存/匯出命令失敗,Docker 現在會自行清理 (#17849)
分發
docker login
現在使用 docker/distribution 中找到的實現處理令牌 (#20832)docker login
不再提示輸入電子郵件 (#20565)- 如果無法獲得基本身份驗證憑據,Docker 現在將回退到登錄檔 V1 (#20241)
- Docker 現在將嘗試在網路錯誤/超時後從上次中斷的地方恢復層下載 (#19840)
日誌記錄
- 修復 journald 日誌驅動程式中的競爭條件 (#21311)
- Docker syslog 驅動程式現在在發出日誌時使用 RFC-5424 格式 (#20121)
- Docker GELF 日誌驅動程式現在允許透過
gelf-compression-type
和gelf-compression-level
選項指定壓縮演算法和級別 (#19831) - Docker 守護程序學會了透過
--raw-logs
選項輸出無顏色日誌 (#19794)
- Docker 在 Windows 平臺上現在包含一個名為
etwlogs
的 ETW(Windows 事件跟蹤)日誌驅動程式 (#19689)
- Journald 日誌驅動程式學會了如何處理標籤 (#19564)
- fluentd 日誌驅動程式學會了以下選項:
fluentd-address
、fluentd-buffer-limit
、fluentd-retry-wait
、fluentd-max-retries
和fluentd-async-connect
(#19439) - Docker 學會了透過新的
gcplogs
日誌驅動程式將日誌傳送到 Google Cloud。(#18766)
雜項
- 當使用
docker save
儲存連結映象時,後續的docker load
將正確恢復它們的父/子關係 (#21385) - 添加了對 OpenBSD 構建 Docker cli 的支援 (#21325)
- 現在可以在網路、卷和映象建立時應用標籤 (#21270)
dockremap
現在作為系統使用者建立 (#21266)
docker info
現在報告 cgroup KernelMemory 的值,如果不支援則發出警告 (#20863)docker info
現在還報告正在使用的 cgroup 驅動程式 (#20388)- Docker 補全現在可在 PowerShell 上使用 (#19894)
dockerinit
不再使用 (#19490,#19851)
網路
docker network inspect
現在將報告所有端點,無論它們是否有活動的容器 (#21160)
- 已新增對 MacVlan 和 IPVlan 網路驅動程式的實驗性支援 (#21122)
docker network ls
的輸出現在按網路名稱排序 (#20383)
- 修復 Docker 允許建立名為
default
的保留網路名稱的錯誤 (#19431)
docker network inspect
返回網路是否為內部網路 (#19357)
- 在建立網路時透過顯式選項控制 IPv6 (
docker network create --ipv6
)。這在docker network inspect
中顯示為新的EnableIPv6
欄位 (#17513)
- 嵌入式 DNS 伺服器中支援 AAAA 記錄(即 IPv6 服務發現)(#21396)
- 修復不將 docker 域的 IPv6 查詢轉發到外部伺服器的問題 (#21396)
- 嵌入式 DNS 伺服器為 DNS 輪詢提供多個 A/AAAA 記錄 (#21019)
- 修復不優雅的守護程序重啟後端點計數不一致的問題 (#21261)
- 將暴露埠和埠對映選項的所有權從 Endpoint 轉移到 Sandbox (#21019)
- 修復主機配置為 ipv6.disable=1 時阻止 docker 重新載入的錯誤 (#21019)
- 添加了內建的 nil IPAM 驅動程式 (#21019)
- 修復 iptables.Exists() 邏輯中的錯誤 #21019
- 修復使用 overlay 網路時 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))
外掛
執行時
- 修復使用無效引數啟動的容器在清理後可能發生的恐慌 (#21716)
- 修復事件計時器過早停止的競爭條件 (#21692)
- 修復層儲存中的競爭條件,可能導致對映損壞並使程序崩潰 (#21677)
- 取消棄用掛載時主機目錄的自動建立。此功能在 Docker 1.9 中被標記為棄用 (#21666),但後來決定其對向後相容性影響過大,因此決定保留該功能。
- 現在,當啟用
userns
時,容器可以共享 NET 和 IPC 名稱空間 (#21383) docker inspect <image-id>
現在將公開 rootfs 層 (#21370)- Docker Windows 獲得了最小的
top
實現 (#21354)
- 修復 Docker 在配置重新載入時未驗證配置檔案的錯誤 (#21089)
- 修復初始啟動失敗時,附加操作會發生的掛起問題 (#21048)
- 修復守護程序配置檔案中的登錄檔服務選項未正確考慮的問題 (#21045)
- 修復 exec 和 resize 操作之間的競爭條件 (#21022)
- 修復過濾 Docker 事件時未正確考慮納秒的問題 (#21013)
- 修復傳遞 64 位元組 ID 時 Docker 命令的處理問題 (#21002)
- Docker 成功刪除網路時現在將返回
204
(即 http.StatusNoContent)程式碼 (#20977)
- 修復守護程序在程序自行退出時無限期等待的錯誤 (#20967
- devmapper 驅動程式學會了
dm.min_free_space
選項。如果對映裝置的可用空間達到傳遞的值,則將禁止建立新裝置。(#20786)
- Docker 現在可以透過
--security-opt=no-new-privileges
標誌阻止容器中的程序獲得新許可權 (#20727)
- 使用
--device
選項啟動容器現在將正確解析符號連結 (#20684)
- Docker 現在依賴
containerd
和runc
來啟動容器。(#20662)
- 修復 Docker 配置重新載入僅更改給定配置檔案中存在的值的問題 (#20604)
- 當
--net=host
時,Docker 現在允許透過--hostname
標誌設定容器主機名 (#20177) - 如果同時指定了
--privileged
和新的--userns=host
標誌,Docker 現在允許在啟用--userns-remap
的情況下執行特權容器 (#20111)
- 修復 Docker 在崩潰重啟後未能正確清理舊容器的問題 (#19679)
- 如果配置檔案中未識別配置鍵,Docker 現在將報錯退出 (#19517)
- 修復守護程序啟動時容器載入問題,如果它們依賴於在容器內執行的外掛 (#19500)
docker update
學會了如何更改容器重啟策略 (#19116)docker inspect
現在還返回一個新的State
欄位,其中包含容器狀態以人類可讀的方式顯示(即created
、restarting
、running
、paused
、exited
或dead
之一)(#18966)
- Docker 學會了透過
pids-limit
標誌限制容器內活動程序(即程序)的數量。注意:這要求核心配置中包含CGROUP_PIDS=y
。(#18697)
docker load
現在有一個--quiet
選項來抑制載入輸出 (#20078)- 修復 IPv6 對等點鄰居發現中的錯誤 (#20842)
- 修復容器以無效選項啟動時,在清理期間發生的恐慌 (#21802)
- 修復終端關閉時容器無法停止的情況 (#21840)
安全性
- 具有
pcp_pmcd_t
selinux 型別的物件獲得了對/var/lib/docker(/.*)?
的管理訪問許可權 (#21370) restart_syscall
、copy_file_range
、mlock2
加入了預設 seccomp 配置檔案中允許的呼叫列表 (#21117, #21262)send
、recv
和x32
已新增到預設 seccomp 配置檔案中允許的 syscalls 和 arch 列表 (#19432)- Docker Content Trust 現在要求伺服器執行快照簽名 (#21046)
- 使用 YubiKeys 進行內容信任簽名的支援已從實驗性階段移出 (#21591)
卷
- 修復了一個問題,即一個字母的目錄名稱不能用作卷的源 (#21106)
docker run -v
現在接受一個新標誌nocopy
。這告訴執行時不要將容器路徑內容複製到卷中(這是預設行為)(#21223)
1.10.3 (2016-03-10)
執行時
分發
外掛系統
安全性
- 修復 linux32 模擬在 docker build 期間失敗的問題 #20672 這是由於
personality
syscall 被預設 seccomp 配置檔案阻止。 - 修復 Oracle XE 10g 無法在容器中啟動的問題 #20981 這是由於
ipc
syscall 被預設 seccomp 配置檔案阻止。 - 修復 Linux From Scratch 上使用者名稱空間無法工作的問題 #20685
- 修復如果啟用了 userns 且
subuid
或subgid
檔案包含註釋,則守護程序無法啟動的問題 #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
- 優雅地處理取消遷移的特殊情況 #20372
- 修復 docker import 對壓縮資料的處理 #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=...
在不提供-a
標誌時顯示已停止容器的問題 #20135
安全性
- 修復阻止 docker events 與授權外掛正常工作的問題 #20002
分發
- 新增額外的驗證並阻止將無效資料上傳到登錄檔 #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 - 在
docker run
命令中新增--tmpfs
標誌,以在容器中建立 tmpfs 掛載 #13587 - 為
docker images
命令新增--format
標誌 #17692 - 允許在檔案中設定守護程序配置,並使用
SIGHUP
訊號進行熱過載 #18587 - 更新 docker 事件以包含更多元資料和事件型別 #18888 此更改在 API 上向後相容,但在 CLI 上不相容。
- 為
docker run
新增--blkio-weight-device
標誌 #13959 - 為
docker run
新增--device-read-bps
和--device-write-bps
標誌 #14466 - 為
docker run
新增--device-read-iops
和--device-write-iops
標誌 #15879 - 為
docker run
新增--oom-score-adj
標誌 #16277 - 為
attach
、run
、start
和exec
命令新增--detach-keys
標誌,以覆蓋從容器分離的預設按鍵序列 #15666 - 為
run
、create
和build
新增--shm-size
標誌,以設定/dev/shm
的大小 #16168 - 在
docker info
中顯示執行中、已停止和已暫停的容器數量 #19249 - 在
docker info
中顯示OSType
和Architecture
#17478 - 在
daemon
中新增--cgroup-parent
標誌,為所有容器設定 cgroup 父級 #19062 - 為 docker cp 新增
-L
標誌以跟蹤符號連結 #16613 docker ps
的新status=dead
過濾器 #17908
- 更改
docker run
退出程式碼以區分執行時和應用程式錯誤 #14012 - 增強
docker events --since
和--until
以支援納秒和時區 #17495 - 為
stats
新增--all
/-a
標誌,以包含執行中和已停止的容器 #16742 - 將預設 cgroup-driver 更改為
cgroupfs
#17704 - 使用
build -t
標記映象時發出“tag”事件 #17115 - 在啟動守護程序時,盡力確保連結容器的啟動順序 #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
現在將在守護程序重啟時增加基礎裝置大小 #19123
安全性
- 為
daemon
新增--userns-remap
標誌以支援使用者名稱空間(以前是實驗性的)#19187 - 在
--security-opt
中新增對自定義 seccomp 配置檔案的支援 #17989 - 新增預設 seccomp 配置檔案 #18780
- 為
daemon
新增--authorization-plugin
標誌以自定義 ACL #15365 - Docker 內容信任現在支援讀取和寫入使用者委託 #18887 這是一項可選的、選擇加入的功能,需要明確使用 Notary 命令列實用程式才能啟用。在特定儲存庫中啟用委託支援將破壞 Docker 1.9 和 1.8 從該儲存庫拉取的能力,如果內容信任已啟用。
- 在使用 BTRFS 儲存驅動程式時,允許 SELinux 在容器中執行 #16452
分發
- 使用內容可定址儲存來儲存映象和層 #17924 第一次執行 docker 時會執行遷移;根據存在的映象和容器數量,可能需要大量時間。映象不再依賴於父鏈,而是包含層引用列表。
docker load
/docker save
tarball 現在也包含內容可定址的映象配置。更多資訊請參閱:https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration - 新增對新 manifest 格式(“schema2”)的支援 #18785
- 推送和拉取的大量改進:效能提升,下載失敗時重試,客戶端斷開連線時取消 #18353, #18418, #19109, #18353
- 限制 v1 協議回退 #18590
- 修復 docker 可能無限期掛起等待不存在的程序拉取映象的問題 #19743
網路
- 使用基於 DNS 的發現而不是
/etc/hosts
#19198 - 支援在
run
上使用--net-alias
和在network connect
上使用--alias
的網路範圍別名 #19242 - 在
run
和network connect
上新增--ip
和--ip6
以支援網路中容器的自定義 IP 地址 #19001 - 為
network create
新增--ipam-opt
以傳遞自定義 IPAM 選項 #17316 - 為
network create
新增--internal
標誌,以限制對網路內部和外部的訪問 #19276 - 為
--cluster-store-opt
新增kv.path
選項 #19167 - 為
--cluster-store-opt
新增discovery.heartbeat
和discovery.ttl
選項以配置發現 TTL 和心跳計時器 #18204 - 為
network inspect
新增--format
標誌 #17481 - 為
network connect
新增--link
以提供容器本地別名 #19229 - 支援與遠端 IPAM 外掛進行功能交換 #18775
- 為
network disconnect
新增--force
以強制容器與網路斷開連線 #19317
- 所有引擎支援的核心 (3.10+) 均支援使用內建 overlay 驅動程式進行多主機網路 #18775
--link
現在在使用者定義網路中的容器的docker run
上受支援 #19229- 增強
docker network rm
以允許移除多個網路 #17489 - 在
network inspect
中包含容器名稱 #17615 - 在
network inspect
中包含使用者定義網路的自動生成子網 #17316 - 為
network ls
新增--filter
標誌以隱藏預定義網路 #17782 - 新增對停止容器的網路連線/斷開連線支援 #18906
- 將網路 ID 新增到容器檢查中 #19323
- 修復 MTU 問題,即 Docker 不會以兩個或更多預設路由啟動 #18108
- 修復容器重複 IP 地址問題 #18106
- 修復有時阻止 docker 建立橋接網路的問題 #19338
- 使用
--net=host
時不要替換 127.0.0.1 名稱伺服器 #19573
日誌記錄
卷
- 新增支援為卷設定掛載傳播模式 #17034
- 為卷外掛 API 新增
ls
和inspect
端點 #16534 現有外掛需要利用這些新 API 來滿足使用者期望 為此,請使用新的 MIME 型別application/vnd.docker.plugins.v1.2+json
#19549
- 修復資料未複製到命名卷的問題 #19175
- 修復阻止卷驅動程式容器化的問題 #19500
- 修復
docker volumes ls --dangling=false
現在顯示所有非懸空卷的問題 #19671 - 在容器移除時不要移除命名卷 #19568
- 允許外部卷驅動程式託管匿名卷 #19190
構建器
- 在
.dockerignore
中新增對**
的支援,以通配多個目錄級別 #17090
客戶端
- 新增透過
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 發行版:Fedora 21 和 Ubuntu 15.04 (Vivid) 的 Docker 軟體包 #18794, #18809
- 棄用 docker tag 的
-f
標誌 #18350
1.9.1 (2015-11-21)
執行時
- 如果映象無法恢復,則不要阻止守護程序啟動 (#17695)
- 強制 IPC 掛載在守護程序關閉/初始化時解除安裝 (#17539)
- 將 IPC 解除安裝錯誤變為警告 (#17554)
- 修復
docker stats
效能迴歸 (#17638) - 澄清
docker logs
在--log-driver=none
時出現的神秘錯誤資訊 (#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) - 修復未連線到守護程序時
docker inspect
輸出的錯誤 (#17715) - 修復
docker inspect -f {{.HostConfig.Dns}} somecontainer
(#17680)
構建器
- 修復 ADD/COPY 中符號連結行為的迴歸 (#17710)
網路
- 允許將網路 ID 作為
--net
的引數 (#17558) - 修復主機連線並阻止
host
網路的從主機斷開連線 (#17476) - 修復
--fixed-cidr
問題,當閘道器 IP 落在 IP 範圍中,並且 IP 範圍不是網路中的第一個塊時 (#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)- 為
docker ps --filter
標誌新增ancestor=<image>
過濾器,以根據其祖先映象過濾容器 (#14570) - 為
docker ps --filter
新增label=<somelabel>
過濾器,以根據標籤過濾容器 (#16530) - 為
docker run
新增--kernel-memory
標誌 (#14006) - 為
docker import
新增--message
標誌,允許指定可選訊息 (#15711) - 為
docker exec
新增--privileged
標誌 (#14113) - 為
docker run
新增--stop-signal
標誌,允許替換容器程序停止訊號 (#15307) - 新增新的
unless-stopped
重啟策略 (#15348) - 檢查映象現在返回標籤 (#13185)
- 為
docker inspect
新增容器大小資訊 (#15796) - 為
/images/{name:.*}/json
新增RepoTags
和RepoDigests
欄位 (#17275)
- 從 API 中移除已棄用的
/container/ps
端點 (#15972) - 傳送並記錄
/exec/<name>/start
的正確 HTTP 程式碼 (#16250) - 共享 IPC 名稱空間的容器之間共享 shm 和 mqueue (#15862)
- 當設定
--oom-kill-disable
時,事件流現在顯示 OOM 狀態 (#16235) - 確保如果使用
ro
選項進行繫結掛載,則特殊網路檔案(/etc/hosts 等)是隻讀的 (#14965) - 提高
rmi
效能 (#16890) - 不要為預設橋接網路更新 /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)
- 為內建節點發現新增守護程序標誌
--cluster-store
和--cluster-advertise
(#16229) - 為設定 TLS 設定新增
--cluster-store-opt
(#16644) - 為守護程序新增
--dns-opt
(#16031)
- 在 API v1.21 中棄用以下容器
NetworkSettings
欄位:EndpointID
、Gateway
、GlobalIPv6Address
、GlobalIPv6PrefixLen
、IPAddress
、IPPrefixLen
、IPv6Gateway
和MacAddress
。這些現在僅限於bridge
網路。使用NetworkSettings.Networks
檢查每個容器的網路設定。
卷
- 新的頂級
volume
子命令和 API (#14242)
- 將 API 卷驅動程式設定移至主機特定配置 (#15798)
- 如果卷名稱不唯一,則列印錯誤訊息 (#16009)
- 確保從 Dockerfile 建立的卷始終使用本地卷驅動程式 (#15507)
- 棄用繫結掛載自動建立缺失主機路徑的功能 (#16349)
日誌記錄
- 為 Amazon CloudWatch 新增
awslogs
日誌驅動程式 (#15495) - 新增通用
tag
日誌選項,允許自定義傳遞給驅動程式的容器/映象資訊 (#15384)
- 為 journald 驅動程式實現
docker logs
端點 (#13707) - 棄用特定驅動程式的日誌標籤 (#15384)
分發
docker search
現在支援部分名稱搜尋 (#16509)
- 推送最佳化:避免緩衝到檔案 (#15493)
- 守護程序將顯示已被另一個客戶端拉取的映象的進度 (#15489)
- 僅請求執行當前操作所需的許可權 (#)
- 信任金鑰(及相應的環境變數)從
offline
重新命名為root
,從tagging
重新命名為repository
(#16894)
- 棄用信任金鑰環境變數
DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE
和DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE
(#16894)
安全性
- 將 SELinux 配置檔案新增到 rpm 包中 (#15832)
- 修復 deb 包中提供的 AppArmor 配置檔案中的各種問題 (#14609)
- 新增 AppArmor 策略,防止寫入 /proc (#15571)
1.8.3 (2015-10-12)
分發
- 修復層 ID 導致本地圖中毒的問題 (CVE-2014-8178)
- 修復 manifest 驗證和解析邏輯錯誤,允許繞過按摘要拉取驗證 (CVE-2014-8179)
- 新增
--disable-legacy-registry
以防止守護程序使用 v1 登錄檔
1.8.2 (2015-09-10)
分發
- 修復了處理 GNU LongLink 和 LongName 條目的罕見邊緣情況。
- 修復 docker pull 上的 ^C。
- 修復客戶端斷開連線時 docker pull 的問題。
- 修復日誌記錄器配置不當導致守護程序崩潰的問題。
- 正確初始化日誌配置。
執行時
- 修復在 docker 容器內執行的 docker 守護程序的 cgroups 掛載錯誤。
- 正確初始化日誌配置。
客戶端
- 在存在預設格式的情況下,正確處理
docker ps
中的-q
標誌。
網路
- 修復 netlink 的幾個特殊情況。
貢獻
- 修復 bash 補全的幾個問題。
1.8.1 (2015-08-12)
分發
- 修復了推送多個標籤會導致無效映象的錯誤
1.8.0 (2015-08-11)
分發
- 可信拉取、推送和構建,預設停用
- 使 tar 層在登錄檔之間具有確定性
- 不允許刪除正在執行的容器的映象
- 檢查要載入的標籤名稱是否為有效的摘要
- 允許單個字元儲存庫名稱
- 為無效標籤名稱新增更準確的錯誤描述
- 使構建快取忽略 mtime
CLI
- 新增對 DOCKER_CONFIG/--config 的支援,以指定配置檔案目錄
- 為 docker inspect 命令新增 --type 標誌
- 為
docker ps
新增--format
格式選項 - 將
docker -d
替換為新的子命令docker daemon
- Zsh 補全更新和改進
- 為 bash 補全新增一些缺失的事件
- 在
docker -H
中支援帶有基本路徑的守護程序 URL - 驗證 status= 過濾器到 docker ps
- 在 docker ps 中顯示容器何時處於 --net=host 模式
- 擴充套件 docker inspect 以匯出與圖形驅動程式相關的映象元資料
- 恢復 --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
- 新增 syslog-facility 選項
- LXC execdriver 與最新 LXC 版本的相容性
- 將 LXC execriver 標記為已棄用(將在遷移到 runc 時移除)
外掛
- 分離外掛套接字和規範位置
- 允許 TLS 連線到外掛
錯誤修復
- 將缺失的 'Names' 欄位新增到 /containers/json API 輸出
- 在拉取時使懸空映象的
docker rmi
安全 - Devicemapper:將預設基本大小更改為 100G
- Go 排程器與 sync.Mutex 和 gcc 的問題
- 修復 Search API 端點因 AuthConfig 為空而導致 panic 的問題
- 正確設定映象規範名稱
- 僅在使用 lxc 驅動程式時檢查 dockerinit
- 修復 ulimit 使用 nproc 的問題
- 如果指定了 -i,--interactive,則始終附加 STDIN
- 儲存容器狀態失敗時顯示錯誤訊息
- 修復了將 --bridge=none 視為停用網路的錯誤假設
- 檢查主機配置中的無效埠規範
- 修復 --net=host 模式下的端點離開失敗
- 修復如果容器未執行,stats API 中 goroutine 洩漏的問題
- 在讀取 apparmor 檔案之前檢查它是否存在
- 修復 DOCKER_TLS_VERIFY 被忽略的問題
- 在啟動時將 umask 設定為預設值
- 更正暫停和解除暫停未執行容器的訊息
- 調整容器建立中不允許的 CpuShares
- ZFS:正確應用 selinux 上下文
- 顯示空字串而不是
當 IP 選項為 nil 時 - 當容器未執行時,
docker kill
返回錯誤 - 修復 COPY/ADD 引用/json 形式
- 修復 logs -f 沒有輸出時的 goroutine 洩漏
- 移除 nat 包中無效主機埠的 panic
- 修復 Fedora 22 中的容器連結問題
- 修復使用分配範圍之外的預設閘道器導致的錯誤
- 使用 RFC3339Nano 模板格式化 inspect 命令中的時間
- 使登錄檔客戶端接受 2xx 和 3xx http 狀態響應為成功
- 修復了由於某些層下載以特定順序失敗而導致守護程序崩潰的競爭問題。
- 修復了 docker ps 格式無效時的錯誤。
- 移除冗餘的 ip forward 檢查。
- 修復嘗試將映象推送到倉庫映象的問題。
- 修復在初始化問題時清理網路入口點的錯誤。
1.7.1 (2015-07-14)
執行時
- 修復使用
docker exec
預設使用者生成 exec 程序的問題 - 使
--bridge=none
不配置網路橋接 - 正確釋出網路統計資訊
- 修復靜態二進位制檔案與隱式 devicemapper 選擇的問題
- 修復間歇性掛起的套接字連線
- 修復 CentOS/RHEL 6.6 上的橋接介面建立問題
- 修復新增到 resolv.conf 的本地 dns 查詢問題
- 修復複製命令掛載卷的問題
- 修復使用 --volumes-from 掛載卷的讀/寫許可權問題
遠端 API
- 修復 Command 和 Entrypoint 的解組問題
- 設定支援的最小客戶端版本限制
- 驗證埠規範
- 當附加/重新附加失敗時返回正確的錯誤
分發
- 修復拉取私有映象的問題
- 修復登錄檔 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 工作的一部分完全重寫
- 引擎內部重構
- 卷程式碼完全重寫以支援外掛工作
- 向守護程序傳送 SIGUSR1 將轉儲所有 goroutine 堆疊而不退出
構建
- 支援環境變數的 ${variable:-value} 和 ${variable:+value} 語法
- 支援資源管理標誌
--cgroup-parent
、--cpu-period
、--cpu-quota
、--cpuset-cpus
、--cpuset-mems
- git 上下文隨分支和目錄更改
- .dockerignore 檔案支援排除規則
分發
- 客戶端支援官方登錄檔的 v2 映象支援
錯誤修復
- 現在支援 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-file
、syslog
或none
- 透過 ID 拉取映象
--ulimit
用於設定容器的 ulimit- 守護程序上的
--default-ulimit
選項適用於所有建立的容器(並在執行時被--ulimit
覆蓋)
1.5.0 (2015-02-10)
構建器
- 可以使用
-f
標誌為給定的docker build
指定 Dockerfile
- Dockerfile 和 .dockerignore 檔案本身可以作為 .dockerignore 檔案的一部分被排除,從而防止對這些檔案的修改使 ADD 或 COPY 指令快取失效
- ADD 和 COPY 指令接受相對路徑
- Dockerfile
FROM scratch
指令現在被解釋為無基礎指定符 - 暴露大量埠時提高效能
Hack
- 允許僅客戶端的 Windows 整合測試
- 將 docker-py 整合測試針對 Docker 守護程序作為我們的測試套件的一部分
打包
- 支援新版本的登錄檔 HTTP API
- 對於大多數已存在層的映象,加快
docker push
的速度
- 修復透過代理聯絡私有登錄檔的問題
遠端 API
- 新的端點將流式傳輸即時容器資源指標,可以透過
docker stats
命令訪問 - 容器可以使用新的
rename
端點和相關的docker rename
命令重新命名
- 容器
inspect
端點顯示此容器中執行的exec
命令的 ID - 容器
inspect
端點顯示 Docker 自動重新啟動容器的次數 events
端點可以流式傳輸新型別的事件:“OOM”(容器因記憶體不足而死亡)、“exec_create”和“exec_start”
- 修復返回的字串欄位在包含數字字元時錯誤地省略了周圍的雙引號
執行時
- Docker 守護程序完全支援 IPv6
docker run
命令可以帶--pid=host
標誌來使用主機 PID 名稱空間,這使得例如可以使用容器化的除錯工具除錯主機程序docker run
命令可以帶--read-only
標誌來使容器的根檔案系統以只讀方式掛載,這可以與卷結合使用,強制容器的程序只寫入將持久化的位置- 容器總記憶體使用量可以使用
--memory-swap
標誌限制docker run
- devicemapper 儲存驅動程式的主要穩定性改進
- 更好地與主機系統整合:容器在重新啟動時將反映主機
/etc/resolv.conf
檔案的更改 - 更好地與主機系統整合:每個容器的 iptable 規則移至 DOCKER 鏈
- 修復容器因記憶體不足而退出時返回無效退出程式碼的問題
其他
- 客戶端在連線到 Docker 守護程序時正確考慮 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 環境變數
1.4.1 (2014-12-15)
執行時
- 修復了建立後 volumes-from 和繫結掛載未生效的問題
1.4.0 (2014-12-11)
自 1.3.0 以來的顯著功能
- 為守護程序設定 key=value 標籤(在
docker info
中顯示),使用新的-label
守護程序標誌應用 - 在 Dockerfile 中新增
ENV
格式支援:ENV name=value name2=value2...
- 新的 Overlayfs 儲存驅動程式
docker info
現在返回ID
和Name
欄位- 按事件名稱、容器或映象篩選事件
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 突破漏洞
- 提取現在是沙盒 chroot
- 安全選項不再提交到映象
執行時
- 修復
docker ps -f exited=1
中的死鎖 - 修復
--volumes-from
引用未能啟動的容器時出現的 bug
登錄檔
--insecure-registry
現在接受 CIDR 表示法,例如 10.1.0.0/16
- IP 地址在 127.0.0.0/8 範圍內的私有登錄檔不需要
--insecure-registry
標誌
- 啟用映象時跳過實驗性登錄檔 v2 API
1.3.1 (2014-10-28)
安全性
- 阻止客戶端、守護程序和登錄檔回退到低於 TLS 1.0 的 SSL 協議
- 使用證書驗證和沒有 HTTP 回退的登錄檔安全 HTTPS 連線,除非指定了
--insecure-registry
執行時
- 修復卷無法共享的問題
客戶端
- 修復
--iptables=false
未自動設定--ip-masq=false
的問題 - 修復 docker run 輸出到非 TTY stdout 的問題
構建器
- 修復環境變數中
$
的轉義問題 - 修復小寫
onbuild
Dockerfile 指令的問題 - 將環境變數擴充套件限制為
ENV
、ADD
、COPY
、WORKDIR
、EXPOSE
、VOLUME
和USER
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 內的橋接上分配 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
在私有登錄檔上搜索- 為
docker ps --filter
新增exited
過濾器
docker rm -f
現在殺死而不是停止
--dns
標誌支援 IPv6 地址
代理
- 獨立程序中的代理例項
- UDP 代理的小 bug 修復
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
期間暫停容器 - 為
docker logs
新增--tail
構建器
- 允許將 tar 檔案作為
docker build
的上下文
- 修復
Dockerfiles
中空格和多行的問題
執行時
- 整體效能改進
- 允許
/
作為docker run -v
的源 - 修復埠分配
- 修復
docker save
中的 bug - 將連結資訊新增到
docker inspect
客戶端
- 改進
docker commit
的命令列解析
遠端 API
- 改進
start
和stop
端點的狀態碼
1.0.1 (2014-06-19)
自 1.0.0 以來的顯著功能
- 增強 LXC 驅動程式的安全性
構建器
- 修復傳遞給孫子程序的
ONBUILD
指令
執行時
- 修復事件訂閱
- 修復使用主機網路的 /etc/hostname 檔案
- 允許
-h
和--net=none
- 修復
--privileged
中熱插拔裝置的問題
客戶端
- 修復事件中的工件
- 修復空標誌導致的 panic
- 修復 Mac OS X 上的
docker cp
雜項
- 修復 Mac OS X 上的編譯
- 修復多個競爭條件
1.0.0 (2014-06-09)
自 0.12.0 以來的顯著功能
- 生產支援
0.12.0 (2014-06-05)
自 0.11.0 以來的顯著功能
- 穩定性、效能和可用性方面的 40 多項改進
- 新的
COPY
Dockerfile 指令,允許將本地檔案從上下文複製到容器中,如果檔案是 tar 檔案,則無需提取 - 在
ADD
上從主機繼承檔案許可權 - 新的
pause
和unpause
命令,允許使用 cgroup freezer 暫停和解除暫停容器 images
命令有一個-f
/--filter
選項來過濾映象列表- 新增
--force-rm
以在構建失敗後進行清理 - 遠端 API 中的 JSON 鍵標準化為 CamelCase
- 從 docker run 拉取現在假定未指定
latest
標籤 - 增強 Linux 能力和裝置節點的安全性
0.11.1 (2014-05-07)
登錄檔
- 修復推送到私有登錄檔和從私有登錄檔拉取的問題
0.11.0 (2014-05-07)
自 0.10.0 以來的顯著功能
- 掛載和程序標籤的 SELinux 支援
- 連結容器可以透過主機名訪問
- 使用
--net
標誌允許高階網路配置,例如主機網路,以便容器可以使用主機的網路介面 - 為遠端 API 新增 ping 端點以對 docker 守護程序進行健康檢查
- 日誌現在可以返回可選的時間戳
- Docker 現在與支援 SHA-512 的登錄檔一起工作
- 支援多個登錄檔端點以允許登錄檔映象
0.10.0 (2014-04-08)
構建器
- 修復在一行上列印多條訊息的問題。修復了構建期間損壞的輸出。
- 在 ADD 構建指令中遵循容器根目錄內的符號連結。
- 修復 EXPOSE 快取。
文件
- 將
docker ps
的新選項新增到文件中。 - 將
docker restart
的選項新增到文件中。 - 更新守護程序文件和 --iptables 和 --ip-forward 的幫助訊息。
- 更新 apt-cacher-ng 文件示例。
- 從文件中移除 --mtu 的重複描述。
- 為
docker images
新增缺失的 -t 和 -v 到文件中。 - 向 cli 文件新增修復。
- 更新 libcontainer 文件。
- 更新文件中的映象以移除對 AUFS 和 LXC 的引用。
- 更新文件中的 nodejs_web_app 以使用新的 epel RPM 地址。
- 修復容器安全性的外部連結。
- 更新遠端 API 文件。
- 將映象大小新增到歷史文件中。
- 在 redis 示例中明確繫結到所有介面。
- 在 1.10 遠端 api 中記錄 DisableNetwork 標誌。
- 記錄
--lxc-conf
僅適用於 lxc。 - 新增 chef 使用文件。
- 為
docker load
新增具有多個映象的示例。 - 在文件中解釋
docker run -a
的作用。
貢獻
- 為 sysvinit 新增 DOCKER_LOGFILE 變數,並使用 append 而不是 overwrite 開啟日誌檔案。
- 修復 init 指令碼 cgroup 掛載變通方案,使其更類似於 cgroupfs-mount,從而正常工作。
- 從 upstart host-integration 示例中移除 inotifywait hack,因為它不再需要。
- 將 check-config 指令碼新增到 contrib。
- 修復 fish shell 補全。
Hack
- 清理 "make test" 的 "go test" 輸出,使其更具可讀性/可掃描性。
- 從 hack/make/test 中排除更多“肯定未經單元測試的 Go 原始碼”目錄。
- 在構建時生成 md5 和 sha256 雜湊,並透過 hack/release.sh 上傳它們。
- 在 Ubuntu PPA 中包含貢獻的補全。
- 新增 cli 整合測試。
- 對 hack 指令碼進行調整,使其更簡單。
遠端 API
- 新增 API 的 TLS 身份驗證支援。
- 將 git clone 從守護程序移到客戶端。
- 修復 docker cp 中的內容型別檢測。
- 將 API 分為 2 個 go 包。
執行時
- 支援不透過 Docker 伺服器的髮夾 NAT。
- devicemapper:在移除不存在的裝置時立即成功。
- devicemapper:改進 devicemapper 裝置的處理(新增每個裝置的鎖,增加睡眠時間並在睡眠時解鎖)。
- devicemapper:將 waitClose 中的超時增加到 10 秒。
- devicemapper:確保我們乾淨地關閉薄池。
- devicemapper:將資訊而不是雜湊傳遞給 activateDeviceIfNeeded、deactivateDevice、setInitialized、deleteDevice。
- devicemapper:避免 AB-BA 死鎖。
- devicemapper:使關閉更好/更快。
- 改進 mflag 中的字母排序。
- 移除手動 http cookie 管理,因為正在使用 cookiejar。
- 在 Darwin 上使用 BSD 原始模式。修復了 nano、tmux 等。
- 新增客戶端的 FreeBSD 支援。
- 將 auth 包合併到 registry。
- 為
docker pull
上的 -t 新增棄用警告。 - 移除錯誤時的 goroutine 洩漏。
- 更新 parseLxcInfo 以符合新的 lxc1.0 格式。
- 修復 darwin 上的附加退出。
- 改進棄用訊息。
- 為
docker pull
重試檢索層元資料最多 5 次。 - 僅為 execin 解除掛載名稱空間。
- 提交時合併現有配置。
- 停用守護程序啟動超時。
- 修復問題 #4681:停用網路時新增環回介面。
- 新增問題 #4681 的失敗測試用例。
- 向子程序傳送 SIGTERM,而不是 SIGKILL。
- 即使不在除錯模式下,也在
docker info
中顯示驅動程式和核心版本。 - 始終為 libcontainer 符號連結 /dev/ptmx。這修復了控制檯相關問題。
- 修復因 /etc/apparmor.d 不存在而導致的問題。
- 建立容器失敗時不要留下空的 cidFile。
- 如果 cgroup 尚未掛載,則自動掛載它們。
- 使用 mock 進行搜尋測試。
- 所有地方都更新為雙短劃線。
- 將 .dockerenv 解析移至 lxc 驅動程式。
- 將容器中的所有繫結掛載移到名稱空間內。
- 不要為容器使用單獨的繫結掛載。
- 始終為 libcontainer 符號連結 /dev/ptmx。
- 不要透過 pid 殺死其他驅動程式。
- 向 libcontainer 新增初始日誌記錄。
- 在
docker ps
中按埠排序。
- 將網路驅動程式移至執行時頂級包。
- 為
docker rmi
新增 --no-prune。 - 在
docker ps
中新增退出以來的時間。
- graphdriver:新增構建標籤。
- 防止分配先前已分配的埠並改進埠分配。
- 為
docker ps
新增 --since/--before 支援。
- 清理容器停止。
- 新增對可配置 dns 搜尋域的支援。
- 新增對相對 WORKDIR 指令的支援。
- 為 docker save 新增 --output 標誌。
- 移除配置合併中 DNS 條目的重複。
- 向 cgroups 和本機驅動程式選項新增 cpuset.cpus。
- 移除 docker-ci。
- 推廣 btrfs。btrfs 不再被視為實驗性。
- 為
docker load
新增 --input 標誌。 - 當現有橋接與 IP 地址不匹配時返回錯誤。
- 在解析行延續之前剝離註釋,以避免將指令解釋為註釋。
- 修復 TestOnlyLoopbackExistsWhenUsingDisableNetworkOption 以忽略“DOWN”介面。
- 新增 cgroup 的 systemd 實現,並使容器顯示為 systemd 單元。
- 修復未指定倉庫時的 commit 和 import。
- 將 /var/lib/docker 重新掛載為 --private 以修復擴充套件問題。
- 在 ping 遠端登錄檔時使用環境的代理。
- 將無害錯誤的錯誤級別降低。
- 允許 --volumes-from 為單個檔案。
- 修復 StdCopy 中擴充套件緩衝區的問題。
- 設定錯誤,無論附加或 stdin。這修復了 #3364。
- 新增 --env-file 支援以從檔案中載入環境變數。
- 符號連結 /etc/mtab 和 /proc/mounts。
- 允許推送單個標籤。
- 在關閉時乾淨地關閉容器,並永遠等待容器關閉。這使得守護程序關閉時容器關閉透過 SIGTERM 正常工作。
- 啟動已在執行的容器時不要丟擲錯誤。
- 修復動態埠分配限制。
- 從 libcontainer 中移除 setupDev。
- 將 API 版本新增到
docker version
。 - 接收訊號時返回正確的退出程式碼,並使 SIGQUIT 在不清理的情況下退出。
- 修復 --volumes-from 掛載失敗。
- 允許非特權容器建立裝置節點。
- 跳過登入測試,因為外部依賴於託管服務。
- 棄用
docker images --tree
和docker images --viz
。 - 棄用
docker insert
。 - 包含 apparmor 的基本抽象。這修復了 Ubuntu 14.04 上的一些 apparmor 相關問題。
- 在推送時遇到 HTTP 401 錯誤時新增特定的錯誤訊息。
- 修復絕對卷檢查。
- 從配置中移除 volumes-from。
- 將 DNS 選項移至 hostconfig。
- 更新 libcontainer 的 apparmor 配置檔案。
- 為
docker commit -run
新增棄用通知。
0.9.1 (2014-03-24)
構建器
- 修復在一行上列印多條訊息的問題。修復了構建期間損壞的輸出。
文件
- 修復容器安全性的外部連結。
貢獻
- 修復 init 指令碼 cgroup 掛載變通方案,使其更類似於 cgroupfs-mount,從而正常工作。
- 為 sysvinit 新增 DOCKER_LOGFILE 變數,並使用 append 而不是 overwrite 開啟日誌檔案。
Hack
- 在構建時生成 md5 和 sha256 雜湊,並透過 hack/release.sh 上傳它們。
遠端 API
- 修復
docker cp
中的內容型別檢測。
執行時
- 在 Darwin 上使用 BSD 原始模式。修復了 nano、tmux 等。
- 僅為 execin 解除掛載名稱空間。
- 為
docker pull
重試檢索層元資料最多 5 次。 - 提交時合併現有配置。
- 修復監視器中的 panic。
- 停用守護程序啟動超時。
- 修復問題 #4681:停用網路時新增環回介面。
- 新增問題 #4681 的失敗測試用例。
- 向子程序傳送 SIGTERM,而不是 SIGKILL。
- 即使不在除錯模式下,也在
docker info
中顯示驅動程式和核心版本。 - 始終為 libcontainer 符號連結 /dev/ptmx。這修復了控制檯相關問題。
- 修復因 /etc/apparmor.d 不存在而導致的問題。
- 建立容器失敗時不要留下空的 cidFile。
- 改進棄用訊息。
- 修復 darwin 上的附加退出。
- devicemapper:改進 devicemapper 裝置的處理(新增每個裝置的鎖,增加睡眠時間,睡眠時解鎖)。
- devicemapper:在移除不存在的裝置時立即成功。
- devicemapper:將 waitClose 中的超時增加到 10 秒。
- 移除錯誤時的 goroutine 洩漏。
- 更新 parseLxcInfo 以符合新的 lxc1.0 格式。
0.9.0 (2014-03-10)
構建器
- 避免構建期間額外的掛載/解除安裝。這修復了構建期間掛載/解除安裝相關的錯誤。
- 為 docker build --rm 新增錯誤。這添加了缺失的錯誤處理。
- 禁止鏈式 onbuild、
onbuild from
和onbuild maintainer
觸發器。 - 使
--rm
成為docker build
的預設值。
文件
- 透過 https 下載 Mac 的 docker 客戶端二進位制檔案。
- 更新安裝說明和描述的標題。
- 添加升級 boot2docker 的說明。
- 在 OS X 安裝文件中新增埠轉發示例。
- 嘗試解耦倉庫和登錄檔。
- 更新文件以解釋更多關於
docker ps
的內容。 - 更新 sshd 示例以使用 Dockerfile。
- 重做一些示例,包括 Python 示例。
- 更新文件以包含容器生命週期的說明。
- 更新文件文件以討論 docs 分支。
- 不要跳過示例的證書檢查並使用 HTTPS。
- 恢復因核心頁面移除而丟失的記憶體和交換記帳部分。
- 解釋 DNS 警告以及如何在執行和使用本地名稱伺服器的系統上修復它們。
貢獻
- 為 mkimage-debootstrap 新增 Tanglu 支援。
- 為 mkimage-debootstrap 新增 SteamOS 支援。
Hack
- 執行整合測試時獲取包覆蓋率。
- 移除 Vagrantfile。這正在被 boot2docker 替換。
- 修復 aufs 不可用系統上的測試。
- 更新打包說明並移除對 lxc 的依賴。
遠端 API
- 將特定於 API 的程式碼移至 api 包。
- 修復 API 的標頭內容型別。使所有端點使用正確的內容型別。
- 修復登錄檔身份驗證並從 CmdPush 和 CmdPull 中移除 ping 呼叫。
- 向 JSON 流函式新增換行符。
執行時
- 不要從 CLI ping 登錄檔。所有對登錄檔的請求都透過守護程序流式傳輸。
- 在 lxc 驅動程式中檢查 nil 資訊返回。這修復了舊版本 lxc 的 panics。
- Devicemapper:清理和解除安裝修復。修復了導致解除安裝間歇性失敗的兩個問題。
- Devicemapper:移除裝置時移除目錄。移除裝置時不會留下目錄。
- Devicemapper:啟用 skip_block_zeroing。透過不將塊清零來提高效能。
- Devicemapper:修復關閉警告。修復了有關池裝置移除的關閉警告。
- 確保 docker cp 流正確關閉。修復了
docker cp
無法複製檔案的問題。 - 停止使
tcp://
預設設定為127.0.0.1:4243
並移除 tcp 的預設埠。 - 修復
docker commit
中的--run
。這使得docker commit --run
再次工作。 - 修復自定義橋接相關選項。這使得自定義橋接再次工作。
- 將 PTY 掛載繫結為容器控制檯。這允許 tmux/screen 執行。
- 新增純 Go libcontainer 庫,使得僅使用 Linux 核心功能執行容器成為可能。
- 新增使用 libcontainer 的本機 exec 驅動程式,並使其成為預設 exec 驅動程式。
- 新增對歸檔中擴充套件屬性的處理支援。
- 將容器 MTU 設定為與主機 MTU 相同。
- 為層新增簡單的 sha256 校驗和以加快
docker push
。
- 改進核心版本解析。
- 允許標誌分組(
docker run -it
)。
- 移除 chroot exec 驅動程式。
- 修復除以零以修復 panic。
- 重寫
docker rmi
。 - 修復 lxc 1.0.0 的 docker info。
- 修復 fedora tty 與 apparmor 的問題。
- 不要總是附加環境變數,用配置中的變數替換預設值。
- 修復 goroutine 洩漏。
- 切換到 Go 1.2.1。
- 修復唯一約束錯誤檢查。
- 處理 Docker 資料目錄和 TMPDIR 的符號連結。
- 新增標誌棄用警告(-flag 已棄用,支援 --flag)
- 為本機執行驅動程式新增 apparmor 配置檔案。
- 將系統特定程式碼從 archive 移至 pkg/system。
- 修復
docker run -i -t
的重複訊號問題 (issue #3336)。 - 為 lxc 返回正確的程序 pid。
- 新增 -G 選項以指定 unix 套接字所屬的組。
- 為
docker rm
新增-f
標誌以強制刪除執行中的容器。 - 殺死幽靈容器並在 docker 守護程序重啟時重啟所有幽靈容器。
- 新增
DOCKER_RAMDISK
環境變數以使 Docker 在根目錄位於 ramdisk 上時工作。
0.8.1 (2014-02-18)
構建器
- 避免構建期間額外的掛載/解除安裝。這移除了不必要的掛載/解除安裝操作,該操作導致 devicemapper 出現問題
- 修復 ADD tar 檔案迴歸。這阻止 Docker 解壓縮透過 ADD 從本地檔案系統新增的 tar 包
- 為
docker build --rm
新增錯誤。這添加了一個缺失的錯誤檢查,以確保檢測並報告刪除容器失敗的情況
文件
- 更新問題提交說明
- 警告不要對 Docker 的儲存資料夾使用符號連結
- 將 Firefox 示例替換為 IceWeasel 示例
- 使用 Dockerfile 重寫 PostgreSQL 示例並新增更多細節
- 改進 OS X 文件
遠端 API
- 修復低於 1.7 版本的損壞映象 API
- 為所有返回 JSON 的 API 端點使用正確的編碼
- 將遠端 api 客戶端移至 api/
- 使用通用套接字等待將 API 呼叫排隊
執行時
- 修復橋接和自定義橋接的自定義設定使用
- 重構 devicemapper 程式碼以避免許多掛載/解除安裝競爭條件和失敗
- 移除可能導致 Docker 在某些情況下崩潰的兩個 panic
- 不要從 CLI 客戶端 ping 登錄檔
- 為 devicemapper 啟用 skip_block_zeroing。這阻止 devicemapper 總是清零整個塊
- 修復
docker commit
中的 --run。這使得 docker commit 將 --run 儲存在映象配置中 - 移除 devicemapper 裝置時移除目錄。這清理了剩餘的掛載目錄
- 為非特權容器丟棄 NET_ADMIN 能力。非特權容器無法更改其網路配置
- 確保
docker cp
流正確關閉 - 避免容器註冊期間額外的掛載/解除安裝。這移除了不必要的掛載/解除安裝操作,該操作導致 devicemapper 出現問題
- 停止允許 tcp:// 作為預設 tcp bin 地址(繫結到 127.0.0.1:4243)並移除預設埠
- 將 PTY 掛載繫結為容器控制檯。這允許 tmux 和 screen 在容器中執行
- 清理歸檔關閉。這修復並改進了歸檔處理
- 修復臨時目錄是符號連結的系統上的引擎測試
- 新增儲存和載入的測試方法
- 重啟容器時避免臨時解除安裝容器。這修復了 devicemapper 在重啟期間的競爭
- 從 GitHub 倉庫構建時支援子模組
- 引用卷路徑以允許空格
- 修復遠端 tar ADD 行為。這修復了導致 Docker 提取 tar 包的迴歸
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 檔案系統進行寫時複製
Docker 在 Mac OS X 上得到官方支援
Docker 守護程序支援 systemd 套接字啟用
0.7.6 (2014-01-14)
構建器
- 不要跟隨構建上下文之外的符號連結
執行時
- 指定 ro 時重新掛載繫結掛載
- 使用 https 獲取 docker 版本
其他
- 內聯 test.docker.io 指紋
- 將 ca-certificates 新增到打包文件
0.7.5 (2014-01-09)
構建器
- 停用構建的壓縮。更多空間使用但上傳速度更快
- 修復某些路徑的 ADD 快取
- 不要壓縮 git 構建的歸檔
文件
- 修復 GROUP add 示例中的錯誤
- 確保 GPG 指紋內聯在文件中
- 提供更具體的關於設定 DCO 提交簽名建議
執行時
- 修復拼寫錯誤的容器名稱
- 停用網路時不要新增主機名
- 按日期返回快取中最新的映象
- 返回 docker wait 的所有錯誤
- 為 GET /version 和 /info 響應新增 Content-Type 頭 "application/json"
其他
- 將 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 on GCE 的 mtu 標誌說明
- 將 Ubuntu Saucy 新增到安裝中
- 修復 master 上而不是 latest 上的錯誤版本警告
執行時
- 僅在需要計算映象大小時獲取映象的 rootfs
- 正確處理 UDP 埠的取消對映
- 使 CopyFileWithTar 使用管道而不是緩衝區來節省 docker build 的記憶體
- 修復登入訊息以顯示 pull 而不是 push
- 透過移除“SOURCE”提示並提及 STDIN 修復“docker load”幫助
- 使空白 -H 選項預設與未傳送 -H 時的行為相同
- 將 cgroup 工具提取到自己的子模組中
其他
- 新增 Travis CI 配置以驗證 DCO 和 gofmt 要求
- 新增開發者貢獻者證書文字
- 升級 VBox Guest Additions
- ping 登錄檔伺服器時檢查獨立標頭
0.7.3 (2014-01-02)
構建器
- 更新 ADD 以使用映象快取,基於新增內容的雜湊
- 新增空 Dockerfile 的錯誤訊息
文件
- 修復指向 www.docker.io 上“Introduction”的過時連結
- 更新文件以在螢幕變寬時也變寬
- 新增關於使用原始二進位制檔案時需要安裝 LXC 的資訊
- 更新 Fedora 文件以解決 docker 和 docker.io 衝突
- 新增關於在幾個 GCE 區域中使用新
-mtu
標誌的說明
- 新增 FrugalWare 安裝說明
- 新增一個更完整的
docker run
示例
- 修復用於建立和啟動特權容器的 API 文件
- 在 "/containers/create" 上新增缺失的 "name" 引數文件
- 提及
lxc-checkconfig
作為檢查一些必要核心配置的方法
- 更新 1.8 API 文件,其中包含 1.7 文件中新增的一些內容
Hack
- 將缺失的 libdevmapper 依賴項新增到打包程式文件
- 將最低 Go 要求強制設定為 Go 1.2+
- Vagrantfile 的許多小改進
- 新增自定義 dockerinit 搜尋位置的能力(僅由需要非標準位置的平臺打包程式非常謹慎地使用)
- 新增覆蓋配置檔案生成報告
- 為我們的 Go 構建標誌新增
-a
,無需手動重新編譯 stdlib
- 更新 Dockerfile 以使其更規範,並減少構建期間的虛假警告
- 修復一些雜項
docker pull
進度條顯示問題
- 將更多雜項包遷移到 "pkg" 資料夾下
- 更新 TextMate 語法高亮,使其自動對名為 "Dockerfile" 的檔案啟用
- 將語法高亮檔案重新組織到公共 "contrib/syntax" 目錄中
- 更新 install.sh 指令碼 (https://get.docker.io/),使其在 Ubuntu/Debian 安裝結束時 busybox 下載或執行失敗時不會失敗
- 在 bash 補全中新增容器名稱支援
打包
- 為 Darwin (Mac OS X) 新增官方 Docker 客戶端二進位制檔案
- 移除 deb 包中的空 "Vendor" 字串並新增 "License"
- 在 deb 包中新增 "/etc/default/docker" 的存根版本
執行時
- 更新層應用以原地提取 tar 檔案,避免在處理白條時檔案流失
- 修復 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 資訊,特別是用於登錄檔請求
- 為 Docker 守護程序新增
-mtu
選項以配置 MTU
- 修復
docker build
在錯誤時以非零退出程式碼退出
- 新增
DOCKER_HOST
環境變數以配置客戶端-H
標誌,而無需為每個呼叫手動指定
0.7.2 (2013-12-16)
執行時
- 使用標準正則表示式在建立時驗證容器名稱
- 將最大映象深度從 42 增加到 127
- 繼續將 api 端點移至 job api
- 新增 -bip 標誌以允許透過 CIDR 指定動態橋接 IP
- 在某些系統上未啟用 ipv6 時允許建立橋接
- 在 dockerinit 內部設定主機名和 IP 地址
- 在 dockerinit 內部丟棄能力
- 修復映象中存在符號連結時主機上的卷問題
- 如果任何容器依賴於某個映象,即使容器未執行,也阻止刪除該映象
- 更新 docker push 以使用新的進度顯示
- 使用 os.Lstat 允許在檢查卷時掛載 unix 套接字
- 調整不活躍使用者登入的處理
- 為舊核心新增 devicemapper 中缺失的定義
- 允許不帶容器驗證的 untag 操作
- 將 auth config 新增到 docker build
文件
- 新增更多關於 Docker 日誌記錄的資訊
- 新增 RHEL 文件
- 新增一個直接示例,用於更改在容器中執行的 CMD
- 更新 Arch 安裝文件
- 新增可信構建部分
- 新增網路文件頁面
其他
- 新增新的覆蓋包以提供程式碼覆蓋率報告
- 將整合測試分離到包中
- 任命 Tianon 為 hack 維護者
- 更新 mkimage-debootstrap,並進行更多調整以保持映象小巧
- 使用 https 獲取安裝指令碼
- Go 1.2 釋出後移除 vendored dotcloud/tar
0.7.1 (2013-12-05)
文件
- 新增 @SvenDowideit 作為文件維護者
- 新增連結示例
- 新增關於大使模式的文件
- 新增 Google Cloud Platform 文件
- 新增 dockerfile 最佳實踐
- 更新 RHEL 文件
- 更新登錄檔文件
- 更新 Postgres 示例
- 更新 Ubuntu 安裝文件
- 改進遠端 api 文件
執行時
- 將 hostconfig 新增到 docker inspect
- 實現
docker log -f
以流式傳輸日誌 - 新增環境變數以停用核心版本警告
- 為
docker inspect
新增 -format - 支援檔案的繫結掛載
- 修復 RHEL 上的橋接建立
- 修復映象大小計算
- 確保即使橋接已存在也呼叫 iptables
- 修復僅 stderr 附加問題
- 銷燬容器時移除 init 層
- 修復不同介面上的相同埠繫結
docker build
現在返回正確的退出程式碼- 修復
docker port
以顯示正確的埠 docker build
現在在客戶端檢查 dockerfile 是否存在docker attach
現在返回正確的退出程式碼- 當容器不存在時移除名稱條目
登錄檔
- 改進進度條,新增下載的 ETA
- 同時拉取現在等待第一個完成而不是失敗
- 推送到登錄檔時只標記頂層映象
- 修復離線映象傳輸問題
- 修復阻止在登錄檔密碼中使用 ':' 的問題
其他
- 為除錯新增 pprof 處理程式
- 建立一個 Makefile
- 使用現在包含修復的 stdlib tar
- 改進 make.sh 測試指令碼
- 處理守護程序上的 SIGQUIT
- 測試期間停用 verbose
- 官方構建升級到 go1.2
- 改進單元測試
- 測試套件現在即使有一個失敗也會執行所有測試
- 重構 Go 中的 C(Devmapper)
- 修復 OS X 編譯
0.7.0 (2013-11-25)
自 0.6.0 以來的顯著功能
- 儲存驅動程式:從 aufs、device-mapper 或 vfs 中選擇。
- 標準 Linux 支援:docker 現在在未修改的 Linux 核心和所有主要發行版上執行。
- 連結:透過將容器相互連線來組合複雜的軟體堆疊。
- 容器命名:透過給容器起有意義的名稱來組織您的容器。
- 高階埠重定向:為每個介面指定埠重定向,或保持敏感埠私有。
- 離線傳輸:將映象推送到檔案系統並從檔案系統拉取,而不會丟失資訊。
- 質量:大量的 bug 修復和小的可用性改進。測試覆蓋率顯著提高。
0.6.7 (2013-11-21)
執行時
- 提高穩定性,修復了一些競爭條件
- 刪除容器卷時跳過已掛載的卷。
- 修復層大小計算:正確處理硬連結
- 對 docker cp CONTAINER:PATH 使用工作路徑
- 修復 tmp 目錄從不清理的問題
- 加速 docker ps
- 名稱衝突時提供更具資訊性的錯誤訊息
- 修復 nameserver 正則表示式
- 始終返回長 ID
- 修復容器重啟競爭條件
- 在 docker stop;docker start 後保持已釋出埠
- 修復 Fedora 上的容器網路
- 正確地向 iptables 表達“任何地址”
- 重新連線到幽靈容器時修復網路設定
- 如果映象被執行中的容器使用,則阻止刪除
- 在圖形讀取操作周圍加鎖
遠端 API
- 在 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 中的迴歸
- 在圖形寫入操作周圍加鎖
- 檢查埠是否有效
- 修復幽靈容器網路導致的重啟執行時錯誤
- 新增更多顏色和動物以增加生成的名稱池
- 修復 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
遠端 API
- 使 /events API 立即傳送標頭
- 不要分割 docker top 的最後一列
- 為歷史記錄新增大小
其他
- Contrib: 桌面整合。Firefox 用例。
- Dockerfile: bump to go1.2rc3
0.6.5 (2013-10-29)
執行時
- 容器現在可以命名
- 容器現在可以相互連結以進行服務發現
- 'run -a'、'start -a' 和 'attach' 可以將訊號轉發到容器,以便更好地與程序監督器整合
- 重啟後自動啟動崩潰的容器
- 將 IP、埠和協議作為單獨的環境變數公開用於容器連結
- 允許將埠釋出到特定 IP
- 預設禁止容器間通訊
- 在 Container.Attach 中忽略 stdin 的 ErrClosedPipe
- 移除未使用的欄位 kernelVersion
- 修復在容器中掛載 /mnt 子目錄時的問題
- 修復刪除映象時的 untag
- 在 dockerinit 中更改工作目錄時檢查 syscall.Chdir 的返回值
客戶端
- 僅在需要時將 stdin 傳遞給 hijack,以避免封閉管道錯誤
- 在命令列方法呼叫中減少反射
- 在啟動容器後而不是之前監控 tty 大小
- 移除 log.Fatal 後無用的 os.Exit() 呼叫
Hack
- 新增初始 init 指令碼庫和適用於 Debian 的更安全的 Ubuntu 打包指令碼
- 新增 -p 選項以使用 http_proxy 呼叫 debootstrap
- 更新 install.sh,使用 $sh_c 獲取 sudo/su 用於 modprobe
- 更新所有 mkimage 指令碼以使用 --numeric-owner 作為 tar 引數
- 更新 hack/release.sh 過程以自動呼叫 hack/make.sh 並在構建和測試問題上中止
其他
- 文件:修復示例中 nc 的標誌
- 測試:移除警告並防止掛載問題
- 測試:更改 tty resize 的邏輯以避免測試中的警告
- 構建器:修復 verbose 輸出的 docker build 中的競爭條件
- 登錄檔:修復 PushImageJSONIndex 方法的內容型別
- Contrib:改進輔助工具以生成 debian 和 Arch linux 伺服器映象
0.6.4 (2013-10-16)
執行時
- Start() 失敗時新增容器清理
- 為 utils/stdcopy.go 新增更好的註釋
- 為錯誤日誌記錄新增 utils.Errorf
- 為 docker run 新增 -rm 以在退出時移除容器
- 移除實際上不是錯誤的錯誤訊息
- 修復帶有卷的
docker rm
- 修復 HTTP 正文可能未關閉的一些錯誤情況
- 修復錯誤的 dockercfg 檔案導致的 panic
- 修復 -i 的 attach 行為
- 記錄狀態中的終止時間。
- 使用空字串,以便 TempDir 自動使用作業系統的 temp 目錄
- 確保關閉網路分配器
- 預設自動重啟容器
- 將 vendor kr/pty 升級到提交 3b1f6487b
(syscall.O_NOCTTY)
- lxc:允許容器中的 set_file_cap 能力
- 將 run -rm 僅移至 cli
- 分割 stdout stderr
- 始終為容器建立新會話
測試
- 新增聚合的 docker-ci 電子郵件報告
- 新增清理以移除剩餘容器
- 為 docker-ci 新增 nightly release
- 新增更多 auth.ResolveAuthConfig 周圍的測試
- 移除測試中的一些錯誤
- 當 TCP 和 UDP 代理終止時捕獲 errClosing 錯誤
- 僅在 TESTFLAGS='-run TestName' make.sh 時執行某些測試
- 阻止 docker-ci 測試關閉 PR
- 將測試中的 panic 替換為 log.Fatal
- 增加 TestRunDetach 超時
文件
- 新增 Docker 基礎設施文件的初步草稿
- 將 devenvironment 連結新增到 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 的資訊
- 改進登錄檔和索引 REST API 文件
- 替換已棄用的升級引用到 docker-latest.tgz,該檔案自 0.5.3 以來未更新
- 更新 Gentoo 安裝文件,因為我們現在在 portage 樹中
- 清理並重新組織貢獻者和維護者的文件和工具
- 拼寫小錯誤修正 protocoll -> protocol
貢獻
- 新增來自 @honza 的 Dockerfile vim 語法高亮
- 新增 mkimage-arch.sh
- 重新組織貢獻的補全指令碼以新增 zsh 補全
Hack
- 將 vagrant 使用者新增到 docker 組
- 為 "docker push" 新增正確的 bash 補全
- 新增 xz utils 作為執行時依賴
- 新增 #2010 的清理/重構部分,用於 hack 和 Dockerfile 更新
- 新增 contrib/mkimage-centos.sh 回去(來自 #1621),以及相關的文件連結
- 新增來自 #1920 的幾個小 make.sh 修復,並使輸出更一致且對貢獻者更友好
- 新增 @tianon 到 hack/MAINTAINERS
- 提高 VirtualBox 的網路效能
- 修改 install.sh 以適應更多人使用,並儘可能使用官方安裝方法(apt 倉庫、portage 樹等)
- 修復 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 金鑰
執行時
- 僅複製和更改非繫結掛載卷的許可權
- 允許多個 volumes-from
- 修復 STDIN 的 HTTP 匯入
文件
- 更新關於構建後提取 docker 二進位制檔案的部分
- 更新開發環境文件以適應新的構建過程
- 從文件中移除“base”映象
其他
- 客戶端:修復分離問題
- 登錄檔:更新正則表示式以匹配索引
0.6.2 (2013-09-17)
執行時
- 新增域名支援
- 使用 path.Match 實現映象過濾
- 移除不必要的警告
- 移除 os/user 依賴項
- 僅當配置存在時才掛載 hostname 檔案
- 在
docker login
命令中處理訊號
- UID 和 GID 現在也應用於卷
docker start
在錯誤時設定錯誤程式碼docker run
設定與啟動程序相同的錯誤程式碼
構建器
- 新增 -rm 選項以移除中間容器
- 允許 RUN 指令多行
登錄檔
- 實現私有登錄檔登入
- 修復推送問題
其他
- Hack:供應商所有依賴項
- 遠端 API:升級到 v1.5
- 打包:將 hack/make.sh 分解為小指令碼,每個“bundle”一個:test、binary、ubuntu 等。
- 文件:總體改進
0.6.1 (2013-08-23)
登錄檔
- 在 API 呼叫中向登錄檔傳遞“元”標頭
打包
- 使用新的構建工具使用正確的 upstart 指令碼
- 使用 libffi-dev,不要從原始碼構建
- 移除重複的 mercurial 安裝命令
0.6.0 (2013-08-22)
執行時
- 新增 lxc-conf 標誌以允許自定義 lxc 選項
- 新增設定工作目錄的選項
- 將映象名稱新增到 LogEvent 測試
- 新增 -privileged 標誌以及相關的測試、文件和示例
- 為 /container/ 新增 websocket 支援
/attach/ws - 當 net.ipv4.ip_forwarding = 0 時新增警告
- 將 hostname 新增到環境
- 在
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 和 attach 文件。
- 改進帶有套接字錯誤的連線訊息
- 僅在需要時載入 authConfig 並修復無用的 WARNING
- 當映象缺失時顯示使用的標籤
- 在建立卷之前應用 volumes-from
- 使 docker run 處理 SIGINT/SIGTERM
- 阻止 .dockercfg 不可讀時的崩潰
- 安裝指令碼應透過 https 獲取,而不是 http。
- API,問題 1471:使用組進行套接字許可權
- 正確檢測 IPv4 轉發
- 將 /dev/shm 掛載為 tmpfs
- 從 http 切換到 https 以獲取 get.docker.io
- 讓使用者空間代理處理容器繫結流量
- 更新 Docker CLI 以指定“Host”標頭的值。
- 更改網路範圍以避免與 EC2 DNS 衝突
- 縮短 ping 登錄檔時的連線和讀取超時
- 並行拉取
- 處理顯示無掩碼 IP 地址的 ip 路由
- 允許不帶 CMD 的 ENTRYPOINT
- 解析 FQN repos 名稱時始終將 localhost 視為域名
- 重構校驗和
文件
- 新增 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 中徽標被擠壓的問題
構建器
- 將 USER 指令新增到 Dockerfile
- 為 Buildfile 新增 workdir 支援
- 為 docker build 新增無快取
- 修復 docker build 和 docker events 輸出
- 只將已知指令計為構建步驟
- 確保構建中的 ENV 指令每次都執行提交
- 禁止 docker build ADD 中的某些路徑
- 構建用法中的倉庫名稱(和可選的標籤)
- 確保 ADD 將在 0755 中建立所有內容
遠端 API
- 按最新建立日期排序映象。
- 重構登錄檔模組中的不透明請求
- 在 /events 中新增映象名稱
- 使用 mime 包解析 Content-Type
- 650 http 工具和使用者代理欄位
Hack
- Bash 補全:將命令限制為相關狀態的容器
- 將 docker 依賴項覆蓋測試新增到 docker-ci
打包
- Docker-brew 0.5.2 支援和記憶體佔用減少
- 將新的 docker 依賴項新增到 docker-ci
- 恢復 "docker.upstart: 避免生成
sh
程序"
- Docker-brew 和 Docker 標準庫
- 使用 docker 釋出 docker
- 修復 get.docker.io 生成的 upstart 指令碼
- 啟用文件生成手冊頁。
- 恢復 Vagrant 中將守護程序繫結到 0.0.0.0。
註冊
- 改進身份驗證推送
- 登錄檔單元測試 + mock 登錄檔
測試
- 改進 TestKillDifferentUser 以防止構建機器人超時
- 修復 TestBindMounts 中的錯別字(呼叫 runContainer 時沒有映象)
- 改進 TestGetContainersTop,使其不依賴於睡眠
- 放寬 lo 介面測試,允許 iface 索引 != 1
- 將登錄檔功能測試新增到 docker-ci
- 在 server 和 utils 中新增一些測試
其他
- Contrib:bash 補全指令碼
- 客戶端:新增 docker cp 命令和 copy api 端點以將容器檔案/資料夾複製到主機
- 僅當附加到 stdin 時不從 stdout 讀取
0.5.3 (2013-08-13)
執行時
- 使用 docker 組進行套接字許可權
- 在 upstart 指令碼中生成 shell
- 處理顯示無掩碼 IP 地址的 ip 路由
- 將 hostname 新增到環境
構建器
- 確保構建中的 ENV 指令每次都執行提交
0.5.2 (2013-08-08)
- 構建器:禁止 docker build ADD 中的某些路徑
- 執行時:更改網路範圍以避免與 EC2 DNS 衝突
- API:將守護程序預設設定為偵聽 unix 套接字
0.5.1 (2013-07-30)
執行時
- 將
ps
引數新增到docker top
- 新增容器 ID 檔案支援(類似 pidfile)
- 在預設環境中新增 container=lxc
- 支援無網路容器,使用
docker run -n
和docker -d -b=none
- Stdout/stderr 日誌現在與 JSON 一起儲存在同一個檔案中
- 預設分配 /16 IP 範圍,回退到 /24。嘗試 12 個範圍而不是 3 個。
- 將 .dockercfg 格式更改為 json 並支援多個身份驗證遠端
- 不要覆蓋配置中的卷
- 修復 EXPOSE 覆蓋問題
API
- Docker 客戶端現在設定 useragent (RFC 2616)
- 新增 /events 端點
構建器
- ADD 命令現在理解 URL
- CmdAdd 和 CmdEnv 現在遵守 Dockerfile 設定的 ENV 變數
- 在 ADD 指令中建立目錄時使用 755 而不是 700
Hack
- 使用助手簡化單元測試
- 改進 docker.upstart 事件
- 將覆蓋率測試新增到 docker-ci
0.5.0 (2013-07-17)
執行時
- 使用 'docker top' 列出容器內執行的所有程序
- 主機目錄可以作為卷掛載,使用 'docker run -v'
- 容器可以暴露公共 UDP 埠(例如,'-p 123/udp')
- 可選地指定確切的公共埠(例如 '-p 80:4500')
- 'docker login' 支援其他選項
- 提交映象時不要儲存容器的主機名。
登錄檔
- 受 Go 打包約定啟發的新映象命名方案允許任意組合登錄檔
- 修復將映象上傳到私有登錄檔時的問題
構建器
- ENTRYPOINT 指令設定容器的預設二進位制入口點
- VOLUME 指令將容器的一部分標記為持久資料
- 'docker build' 預設顯示構建的完整輸出
0.4.8 (2013-07-01)
- 構建器:新的構建操作 ENTRYPOINT 為容器新增可執行入口點。- 執行時:修復導致 'docker run -d' 不再列印容器 ID 的錯誤。
- 測試:修復測試套件中的問題
0.4.7 (2013-06-28)
遠端 API
- 下載和上傳大檔案時進度條更新更快
- 修復可選 unix 套接字傳輸中的 bug
執行時
- 改進核心版本檢測
- 主機目錄可以使用 'docker run -b' 掛載為卷
- 修復僅附加到 stdin 時的問題
- 使用 'tar --numeric-owner' 以避免跨多個主機 uid 不匹配
Hack
- 改進測試套件和開發環境
- 移除對 '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)
構建器
- 本地檔案的 ADD 將檢測 tar 歸檔並解包
- ADD 改進:使用 tar 進行復制 + 自動解包本地歸檔
- ADD 使用 tar/untar 進行復制而不是呼叫 'cp -ar'
- 修復 ADD 的行為,使其(大部分)向後相容、可預測且有充分文件。
- 修復導致 ADD 是第一個命令時構建失敗的 bug
- 'docker build' 的更好輸出
執行時
- 移除 bsdtar 依賴項
- 新增 unix 套接字和多個 -H 支援
- 防止刪除執行中的容器
- 使用 go1.1 cookiejar
- 修復從執行中的 TTY 容器分離的問題
- 禁止單個映象/倉庫的並行推/拉。修復
#311
- 修復 Run 命令在附加時的競爭條件。
客戶端
- 拉取時 ProgressBar 大小可讀
- 修復 docker version 的 git 提交輸出
API
- 在 History API 呼叫上傳送所有標籤
- 為 history 命令新增標籤查詢。修復 #882
文件
- 修復 irc bouncer 示例中缺失的命令
0.4.2 (2013-06-17)
- 打包:版本升級以解決 Ubuntu bug
0.4.1 (2013-06-17)
遠端 API
- 新增標誌以啟用跨域請求
- 在 docker ps 和 docker images 中新增映象和容器大小
執行時
- 使用 'docker -d -dns' 在主機範圍內配置 dns
- 檢測錯誤的 DNS 配置並替換為公共預設值
- 允許 docker run
: - 現在可以指定公共埠(例如:-p 80:4500)
- 改進映象刪除以垃圾回收未引用的父級
客戶端
- 允許在 inspect 中使用多個引數
- 在
docker run
的劫持之前列印容器 ID
登錄檔
- 新增對 repo 名稱的正則表示式檢查
- 將身份驗證移至客戶端
- 移除 pull 上的登入檢查
其他
- Vagrantfile:將 rest api 埠新增到 vagrantfile 的 port_forward
- 升級到 Go 1.1
- Builder:當 Dockerfile 的最後一行沒有以 \n 結尾時,不要忽略它
0.4.0 (2013-06-03)
構建器
- 引入 Builder
- '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)
- Registry:修復推送回歸
- 各種錯誤修復
0.3.2 (2013-05-09)
登錄檔
- 改進校驗和過程
- 在推送時使用大小以獲得良好的進度條
- 如果存檔存在,則使用實際存檔以加快推送速度
- 修復推送時出現的 400 錯誤
執行時
- 在提交時儲存實際存檔
0.3.1 (2013-05-08)
構建器
- 在 docker builder 中實現自動執行功能
- 向 docker builder 新增快取
- 新增對 docker builder 的支援,以本機 API 作為頂級命令
- 在 docker builder 中實現 ENV
- 在建立之前檢查命令是否存在併為此情況新增單元測試
- 使用任何空白字元而不是製表符
執行時
- 在除錯資訊中新增 go 版本
- 核心版本 - 如果 flavor 為空,則不顯示破折號
登錄檔
- 新增 docker search 頂級命令以搜尋儲存庫
- 修復帶有特定標籤的官方映象的拉取
- 修復使用不同使用者登入並嘗試推送時出現的問題
- 改進校驗和 - 非同步計算
映象
- 將映象圖輸出到 dot (graphviz)
- 修復 ByParent 函式
文件
- 新的介紹和高階概述
- 新增 docker builder 的文件
- Docker 文件的 CSS 修復,以使 REST API 文件看起來更好。
- 修復 CouchDB 示例頁面標題錯誤
- 修復 README 格式
- 更新 www.docker.io 網站。
其他
- 網站:新的高階概述
- 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:實現新的登錄檔
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 操作:"maintainer"
- 新的 Dockerfile 操作:"expose"
- 新的 Dockerfile 操作:"cmd"
- 用於構建 Debian 基礎層的 Contrib 指令碼
- 'docker -d -r':在守護程序啟動時重啟崩潰的容器
- Runtime:改進測試覆蓋率
0.2.0 (2013-04-23)
- Runtime:幽靈容器可以被殺死並等待
- 文件:更新安裝說明
- 打包:修復 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 會話分離 - 各種錯誤修復和穩定性改進
- 次要 UI 改進
- 自動建立我們自己的橋接介面 '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]]]' 在執行時選擇性附加
- 各種錯誤修復和穩定性改進
- UI 最佳化
- push/pull 上的進度條
- 預設使用 XZ 壓縮
- 使 IP 分配器惰性
0.1.1 (2013-03-31)
- 為方便起見顯示簡短 ID
- 穩定程序管理
- 層可以包含提交訊息
- 簡化 'docker attach'
- 修復重新附加的支援
- 各種錯誤修復和穩定性改進
- 執行時自動下載
- 推送時自動登入
- 加強文件
0.1.0 (2013-03-23)
首次公開發布
- 實現登錄檔以推送/拉取映象
- TCP 埠分配
- 修復 Linux 上的 termcaps
- 新增文件
- 新增對 Vagrant 的支援,包括 Vagrantfile
- 新增單元測試
- 新增儲存庫/標籤以簡化映象管理
- 改進層實現