Docker - Private Registry-Windows Container Service
公司環境特別,在測試 docker 過程只能被限定在 Windows Server 2016 - Windows Container,測試過程碰而一個非常實務上的需求,在公司內部需要架設私有 registry 服務,以提供私有 docker windows images 的 push
與 pull
服務。
第一次失敗
第一次,找到 docker 官方的 labs 的文件:https://github.com/docker/labs/blob/master/windows/registry/part-1.md 有做出 registry.exe 了,但在「Dockerfile for the Registry Server」步驟一直卡關,一直無法往下進行,苦腦了幾日。
Andrew Wu 幫忙
後來來到 FB:Docker.Taipei 社團詢問,在 Andrew Wu 幫忙下,得到另一個同 Docker labs 作者的另一個實作:https://github.com/StefanScherer/dockerfiles-windows/tree/master/registry,也可以直接 pull 作者 build 好的版本:https://hub.docker.com/r/stefanscherer/registry-windows/,目前測試的結果,可以順利在 Windows Server 上架起 Registry for Windows 服務。
注意,開發者必需修改本機 docker client 的 daemon.json
:
{
"insecure-registries": [ "192.168.254.133:5000" ]
}
- IP Address 請修改為 Server Address,並且關閉 docker 並重啟 docker。(我在 Windows 10 的使用 restart 指令不會重讀 daemon.json。)
- 架設文件寫的很清楚,請自行參考。
pull to Private registry
要 pull 私有 Images 到私有 registry,簡單來說有二個步驟:
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
docker pull Name[:TAG]
定義一個 tag 指向來源 Image,tag 名稱為:IP:Port/Name[:TAG],例如:172.21.5.213:5000/regstry;然後使用此 Tag Name 來進行 pull 的動作,例如:
docker tag kkbruce/windowsredis:3.2.100 192.168.254.133:5000/windowsredis:3.2.100
docker push 192.168.254.133:5000/windowsredis:3.2.100
就能看到如下圖的效果:
刪除 blob images
算是在測試過程碰到的小問題,registry 除了 pull(HTTP GET) 與 push(HTTP POST) 之外其他部分,必須自行透過 HTTP API 去進行其他的操作。
請問CA憑證有詳細的產生及套用到DOCKER上的步驟嗎?
回覆刪除感謝