El comando $ docker
no se pudo encontrar en esta distribución de WSL 1. Recomendamos convertir esta distribución a WSL 2 y activar la integración de WSL en la configuración de Docker Desktop.
Consulte https://docs.docker.com/docker-for-windows/wsl/ para obtener más detalles.
No se puede cambiar a WSL2 y no se puede instalar la ventana acoplable:
Como escribió Taylor en su comentario, debe conectarse desde WSL al escritorio de la ventana acoplable.
En la imagen que adjuntó, hay una casilla de verificación expose daemon on ...
Marque esta casilla.
Ahora necesita docker cli, puede instalar Linux vm y luego instalar docker en ese Linux vm que acaba de instalar.
Luego ejecute which docker
y copie este archivo en su computadora con Windows.
Copie el ejecutable de Docker en /usr/local/bin
en su WSL.
Ahora ejecute lo siguiente en WSL
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc . ~/.bashrc
Esto funcionó para mí en WSL 1.
Seguí estos pasos: https://docs.microsoft.com/en-us/windows/wsl/install-win10
Además, para docker en ubuntu, lo habilité en los recursos de docker como paso final. Configuración > Recursos > Integración WSL. de: https://docs.docker.com/docker-for-windows/wsl/
Suponiendo que ya tiene wsl 2 en su sistema, ejecute powershell como administrador:
ejecute wsl --list --verbose
que le dará una lista de sus procesos en ejecución de wsl:
> wsl --list --verbose NAME STATE VERSION Ubuntu-20.04 Running 1
Luego, para cambiarlo con wsl --set-version <your proc> 2
:
> wsl --set-version Ubuntu-20.04 2 Conversion in progress, this may take a few minutes... For information on key differences with WSL 2 please visit https://aka.ms/wsl2 Conversion complete.
Debe ir a la configuración del escritorio de la ventana acoplable y habilitar la integración con su distribución en "Recursos -> Integración WSL".
Mi problema parece ser el mismo, a pesar de que la integración WSL ya está habilitada desde la instalación.
En el caparazón de Windows:
> wsl docker --version The command 'docker' could not be found in this WSL 2 distro. We recommend to activate the WSL integration in Docker Desktop settings. See https://docs.docker.com/docker-for-windows/wsl/ for details.
Una opción para resolver este problema es reinstalar Docker Desktop ( https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon#how-to-uninstall-docker ), pero no No necesito hacer esto.
Los pasos a continuación funcionan para mí (los encontré en https://github.com/docker/for-win/issues/7039 ).
Abra el shell de Windows (tal vez como administrador) y ejecute:
> wsl -t docker-desktop > wsl --shutdown > wsl --unregister docker-desktop
Luego vaya a los servicios de Windows, detenga Docker Desktop Service, O para hacer esto, ejecute el comando en el shell de Windows como administrador:
> Stop-Service -Name "com.docker.service"
Y finalmente, reinicie la aplicación Docker Desktop.
Prueba en el shell de Windows:
> wsl docker --version Docker version 20.10.2, build 2291f61
Debe ejecutar la consola de WSL como administrador . De lo contrario, es posible que no se reconozca el comando docker.
Para mí, nada funcionó excepto: haga clic con el botón derecho en el icono de Docker (junto al reloj) y elija "Cambiar a contenedores de Linux"
Y aquí vamos ! Ahora puedo tener el menú Configuración> Recursos> Integración WSL.
La respuesta de Fabrício Pereiras estaba funcionando para mí, pero tenía que hacerlo con bastante frecuencia, lo que todavía era molesto. Resulta que el orden de inicio de los sistemas también es importante.
Inicie Docker primero , luego WSL2 después .
No inicio Docker Desktop con Windows y, por lo general, ya había abierto una terminal en WSL. Entonces Docker no se pudo encontrar. La respuesta de Fabricio me funcionó porque apagué WSL2 y luego lo volví a iniciar cuando Docker ya se estaba ejecutando.
Para aquellos que todavía tienen problemas con esto, algunos de mis enlaces simbólicos desaparecieron mágicamente y ninguna cantidad de reinstalación ayudó.
Asegúrese de tener los siguientes enlaces simbólicos en su instalación de WSL2:
$ ls -l /usr/bin/ | grep docker lrwxrwxrwx 1 root root 56 Jul 14 13:01 com.docker.cli -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/com.docker.cli lrwxrwxrwx 1 root root 48 Jul 14 13:01 docker -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker lrwxrwxrwx 1 root root 56 Jul 14 13:01 docker-compose -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose lrwxrwxrwx 1 root root 59 Jul 14 13:01 docker-compose-v1 -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose-v1 lrwxrwxrwx 1 root root 71 Jul 14 13:01 docker-credential-desktop.exe -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe lrwxrwxrwx 1 root root 50 Jul 14 13:01 hub-tool -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/hub-tool lrwxrwxrwx 1 root root 48 Jun 29 09:27 notary -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/notary
Tuve este problema, para mí corriendo
$ ls -l /usr/bin/ | grep docker
mostró todos los enlaces simbólicos correctos según esta respuesta , sin embargo, vi lo siguiente:
which docker /mnt/c/Program Files/Docker/Docker/resources/bin/docker
La solución fue simplemente configurar la variable PATH
para tener /user/bin
como la primera entrada
PATH="/usr/bin:$PATH"
De la multitud de respuestas, parece que hay muchas cosas que pueden causar este error, por lo que su millaje puede variar.
Otra cosa buena para verificar es que Docker Desktop realmente se está ejecutando. Si no es así, which docker
dará como resultado el directorio /mnt/c/...
como se indicó anteriormente.
Me quedé con este error después de eliminar Ubuntu 18.04 e instalar el 20.04.
Incluso con WSL 2 habilitado, sigo enfrentándome a este error.
Esto es lo que funciona para mí, vaya a Configuración -> recurso y alterne "Ubuntu" y luego desaparecerá el error :)
En mi caso, la integración se configuró correctamente en la aplicación docker, WSL2 era correctamente el wsl predeterminado y no pude resolver la anulación del registro de la instancia docker wsl y reiniciar el servicio docker como se menciona en otras respuestas.
Después de un tiempo, noté que el comando docker-compose
funcionaba correctamente. El problema se limitaba al comando docker
.
Busqué todos los comandos de docker en el directorio usr/bin
, esa es la ruta donde se encuentra docker-compose
( which docker-compose
), así que ejecuté ls -l /usr/bin | grep docker
, encontré
drwxrwxrwx 1 root root 48 Nov 29 10:59 docker lrwxrwxrwx 1 root root 56 Nov 29 10:59 docker-compose -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose* lrwxrwxrwx 1 root root 59 Nov 29 10:59 docker-compose-v1 -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-compose-v1* lrwxrwxrwx 1 root root 71 Nov 29 10:59 docker-credential-desktop.exe -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe* lrwxrwxrwx 1 root root 50 Nov 29 10:59 hub-tool -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/hub-tool*
Por alguna extraña razón, la ventana acoplable no era un enlace simbólico sino un directorio.
Resolví eliminar el directorio y volver a crear manualmente el enlace simbólico:
rm -rf /usr/bin/docker sudo ln -s /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker /usr/bin/docker
La integración de WSL en Recursos no se mostraba para mí.
Tuve que desmarcar "Usar el motor basado en WSL2" en Configuración general, Aplicar, luego Verificarlo nuevamente, Aplicar, luego la Integración de WSL apareció en recursos y pude hacer clic en el control deslizante de Ubuntu.