
저는 wsl의 오픈시프트 프로젝트에 참여하고 싶습니다. 나는 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에서 설정한 변수를 실제로 내보내는 것이 아니라는 것을 깨달았습니다. Derp.
내가 가지고 있던 한 줄을 다음과 같이 변경하면 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