Comunicando-se com o Windows VirtualBox Minishift do WSL

Comunicando-se com o Windows VirtualBox Minishift do WSL

Quero trabalhar em projetos openshift da wsl. Eu configurei o Minishift e o VirtualBox no Windows e, pelo que sei, criei um alias para tudo de maneira adequada.

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

No entanto, não consigo acessar o registro do Docker local do wsl.

$ 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

Não sou especialista em Docker, mas o que me confundiu é que esse IP era diferente do DOCKER_HOST. Funciona bem no Windows.

C:\Users\${username}>oc whoami -t | docker login -u developer --password-stdin 172.30.1.1:5000
Login Succeeded

Talvez o registro do docker esteja configurado no adaptador somente host no virtualbox e talvez o wsl não consiga se comunicar com ele por esse motivo?

Qualquer visão ou conselho sobre a configuração pretendida é muito bem-vinda.

Responder1

Percebi que na verdade não estava exportando as variáveis ​​​​que estava definindo no WSL. Derp.

Alterar o one-liner que eu tinha para o seguinte me permite fazer login usando o cliente 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

informação relacionada