
我想從事 wsl 的 openshift 專案。我已經在 Windows 上設定了 Minishift 和 VirtualBox,並且據我所知,對所有內容都進行了適當的別名,如下所示。
alias minishift='/mnt/c/Users/<username>/minishift-#####/minishift.exe'
#Sets oc binary alias
alias oc="$(wslpath -a $(minishift oc-env | grep -oP "(?<=PATH=)[^;]+"))/oc.exe"
#Sets docker environment variables
for i in $(minishift docker-env | awk '/SET/{print $2}');do if $( echo ${i} | grep -q 'DOCKER_CERT_PATH' );then eval DOCKER_CERT_PATH=$(wslpath -a $(echo ${i} | grep -oP "C:.*$"));else eval ${i};fi;done
但是,我無法從 wsl 存取本機 docker 註冊表。
$ oc whoami -t | docker login -u developer --password-stdin $(minishift openshift registry)
INFO[0015] Error logging in to v2 endpoint, trying next endpoint: Get https://172.30.1.1:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
INFO[0036] Error logging in to v1 endpoint, trying next endpoint: Get https://172.30.1.1:5000/v1/users/: dial tcp 172.30.1.1:5000: connect: connection refused
Get https://172.30.1.1:5000/v1/users/: dial tcp 172.30.1.1:5000: connect: connection refused
我不是 Docker 專家,但令我困惑的是這個 IP 與 DOCKER_HOST 不同。它在 Windows 上運行良好。
C:\Users\${username}>oc whoami -t | docker login -u developer --password-stdin 172.30.1.1:5000
Login Succeeded
也許 docker 註冊表是在 virtualbox 上的僅主機適配器上設定的,並且 wsl 可能因此無法與其通訊?
非常歡迎對我的預期設定有任何見解或建議。
答案1
我意識到我實際上並沒有導出在 WSL 中設定的變數。德普。
將我必須的一行更改為以下內容允許我使用 wsl docker 用戶端登錄
for i in $(minishift docker-env | awk '/SET/{print $2}');do if $( echo ${i} | grep -q 'DOCKER_CERT_PATH' );then eval export DOCKER_CERT_PATH=$(wslpath -a $(echo ${i} | grep -oP "C:.*$"));else eval export ${i};fi;done
$ oc whoami -t | docker login -u developer --password-stdin $(minishift openshift registry)
Login Succeeded