La guía más completa de la historia para enseñarte a jugar con wsl2+docker y construir tu propio entorno de desarrollo desde cero.

1. Instalar wsl

Requiere una versión de Windows superior a

d7bf687a3c3a654b7fee10568ea538d8.png

Buscar para habilitar o deshabilitar las funciones de Windows

36ad77bb8c9f4314b650d49d0c80b8ed.png

Verifique las funciones marcadas con puntos rojos en la imagen. Tenga en cuenta que si marca Hyper-V, no podrá usar software de máquina virtual, como vm y el emulador de Android. Haga clic en Aceptar y reinicie la computadora.

Abrir administrador de tareas

70315604273b452584e084dd4dd01f27.png

Asegúrese de que la virtualización esté habilitada. Es posible que algunos dispositivos necesiten ir a la configuración del BIOS y verificar la información relevante usted mismo.

Descargue el paquete de actualización del kernel wsl2 de 64 bits https%3A//wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Después de la instalación, configure la versión wsl predeterminada

wsl --set-default-version 2

instalar sistema linux

Método 1: Puede buscar e instalar desde la tienda de Microsoft, pero existe la probabilidad de que falle.

Método 2: Vaya al final de la página y descargue la versión que necesita.     Pasos de instalación manual para versiones anteriores de WSL | Microsoft Aprenda instrucciones paso a paso para instalar WSL manualmente (en lugar de usar el comando de instalación de wsl) en versiones anteriores de Windows. https://docs.microsoft.com/zh-cn/windows/wsl/install-manualAgregue un sufijo .zip al archivo descargado y use un software de descompresión para descomprimirlo en el lugar donde desea instalarlo.

e4d4b9658f4b42bb8752ca84d75377e4.png

Haga clic en el archivo ubnutu.exe que se encuentra dentro y espere un momento hasta que la instalación se realice correctamente.

Vaya a cmd e ingrese wsl -l -v para verificar la versión del subsistema instalado

2. Configuración una vez completada la instalación:

Una vez completada la instalación, establecerá su propio nombre de usuario y contraseña (tenga en cuenta que no es la cuenta raíz)

Establecer contraseña de root

sudo passwd

Cambiar prueba de usuario root

su root

Es muy problemático cambiar el usuario root cada vez. Puede usar powershell para ejecutar el siguiente comando. De forma predeterminada, el usuario root inicia sesión. Reemplace los parámetros usted mismo.

C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root

Iniciar servicio ssh

Primero asegúrate de ser el usuario root.

vi /etc/ssh/sshd_config

Luego de ingresar modifica la siguiente configuración, puedes copiar la mía directamente, (los elementos que modifiqué están comentados)

#	$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 22   #22端口,ssh服务默认端口
#AddressFamily any
ListenAddress 0.0.0.0  #所有ip都可以联通
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
PermitRootLogin yes  #把上面那行相同的注释掉,新加一行,允许root账户登录

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes #允许使用密码登录
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem	sftp	/usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#	X11Forwarding no
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server

Reinicie el proyecto ssh

sudo service ssh restart

Pruebe el enlace usando la herramienta ssh

20ee67686376478fad02905b22ab773f.png

éxito

3. Instalación de Docker-Desktop en Windows

Descargue el paquete de instalación de Docker-Desktop del sitio web oficial. Asegúrese de que todas las funciones de Windows habilitadas en el primer paso estén habilitadas.

Descargar Docker de escritorio | Estibador   

Proceso normal de instalación de software

Ingrese al software y haga clic en el engranaje pequeño para ingresar a la configuración

7eb77bd241f1493489c332a98338c274.png

Comprueba el ubnutu que instalaste

 cdc0ac2185c94feeb72548e0fb98572a.png

 Cambie la dirección del almacén de imágenes. Yo uso Alibaba Cloud y hay muchos en línea, como la Universidad de Ciencia y Tecnología de China, etc.

{
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
    "https://lcuu39wt.mirror.aliyuncs.com"
  ]
}

Después de la configuración, abra la terminal e ingrese docker ps

9ca5bbdaf547478cbad6b2c818fedb8f.png

 Verá que Docker y su subsistema Linux ya están conectados.

4. Problemas existentes y soluciones

Problema 1: cada vez que se reinicia wsl, asignará aleatoriamente una nueva IP al subsistema, lo que hará que la herramienta ssh ingrese una nueva IP cada vez, lo que no favorece el desarrollo.

Problema 2: el servicio ssh no se inicia automáticamente

Soluciones:

Este es un script por lotes escrito por el autor para configurar la IP del subsistema. Si lo ejecuta con privilegios de administrador, cerrará automáticamente wsl, configurará la información relacionada con la tarjeta de red wsl, reiniciará wsl y se empaquetará en un archivo ejecutable para todos. usar.

Establecer descarga de la versión oficial del subsistema ip.exe 丨 Descarga de la última versión 丨 Descarga de la versión verde 丨 Descarga de la aplicación-123 disco en la nube

Sin embargo, hay un problema con el uso de este script, es decir, debido a que se reinicia wsl, la conexión entre Docker y WSL se desconectará. Debe reiniciar el proceso de Docker y el servicio ssh. También puede usar un script para completar esta operación. , pero implica problemas de ruta de archivo. , por lo que no se proporciona. Puede usar chatgpt para completar esta pequeña función o puede hacerlo manualmente.

Reinicie el comando del servicio ssh y modifique los parámetros según sea necesario.

C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"

Supongo que te gusta

Origin blog.csdn.net/weixin_48386220/article/details/131920077
Recomendado
Clasificación