1. Installez WSL
Nécessite une version Windows supérieure à
Rechercher pour activer ou désactiver les fonctionnalités Windows
Vérifiez les fonctions marquées de points rouges sur l'image. Notez que si vous cochez hyper-v, vous ne pouvez pas utiliser de logiciel de machine virtuelle, tel que vm et l'émulateur Android. Cliquez sur OK et redémarrez l'ordinateur.
Ouvrir le gestionnaire de tâches
Assurez-vous que la virtualisation est activée. Certains appareils devront peut-être accéder aux paramètres du BIOS et vérifier vous-même les informations pertinentes.
Téléchargez le package de mise à niveau du noyau wsl2 64 bits https%3A//wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Après l'installation, définissez la version wsl par défaut
wsl --set-default-version 2
Installer le système Linux
Méthode 1 : Vous pouvez rechercher et installer à partir du Microsoft Store, mais il est probable que cela échoue.
Méthode 2 : allez au bas de la page et téléchargez la version dont vous avez besoin. Étapes d'installation manuelle pour les anciennes versions de WSL | Microsoft Découvrez les instructions étape par étape pour installer WSL manuellement (au lieu d'utiliser la commande d'installation wsl) sur les anciennes versions. de Windows. https://docs.microsoft.com/zh-cn/windows/wsl/install-manualAjoutez un suffixe .zip au fichier téléchargé et utilisez un logiciel de décompression pour le décompresser à l'endroit où vous souhaitez l'installer.
Cliquez sur le fichier ubnutu.exe à l’intérieur et attendez un moment que l’installation réussisse.
Accédez à cmd et entrez wsl -l -v pour vérifier la version du sous-système installé
2. Paramètres une fois l'installation terminée :
Une fois l'installation terminée, vous définirez votre propre nom d'utilisateur et votre mot de passe (notez qu'il ne s'agit pas du compte root)
Définir le mot de passe root
sudo passwd
Changer le test de l'utilisateur root
su root
Il est très difficile de changer d'utilisateur root à chaque fois. Vous pouvez utiliser PowerShell pour exécuter la commande suivante. Par défaut, l'utilisateur root se connecte. Remplacez les paramètres vous-même.
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root
Démarrer le service SSH
Assurez-vous d'abord que vous êtes l'utilisateur root
vi /etc/ssh/sshd_config
Après avoir saisi, modifiez la configuration suivante, vous pouvez directement copier la mienne, (les éléments que j'ai modifiés sont commentés)
# $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
Redémarrez le projet ssh
sudo service ssh restart
Testez le lien à l'aide de l'outil ssh
succès
3. Installation de docker-desktop sous Windows
Téléchargez le package d'installation docker-desktop sur le site officiel. Assurez-vous que toutes les fonctions Windows activées lors de la première étape sont activées.
Télécharger Docker Bureau | Docker
Processus normal d'installation du logiciel
Entrez dans le logiciel et cliquez sur le petit engrenage pour entrer les paramètres
Vérifiez l'ubnutu que vous avez installé
Changer l'adresse de l'entrepôt d'images. J'utilise Alibaba Cloud, et il en existe de nombreux en ligne, comme l'Université des sciences et technologies de Chine, etc.
{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://lcuu39wt.mirror.aliyuncs.com"
]
}
Après la configuration, ouvrez le terminal et entrez docker ps
Vous constaterez que Docker et votre sous-système Linux sont déjà connectés.
4. Problèmes existants et solutions
Problème 1 : chaque fois que wsl redémarre, il attribuera de manière aléatoire une nouvelle adresse IP au sous-système, ce qui obligera l'outil ssh à saisir une nouvelle adresse IP à chaque fois, ce qui n'est pas propice au développement.
Problème 2 : le service ssh ne démarre pas automatiquement
Solutions:
Il s'agit d'un script batch écrit par l'auteur pour définir l'adresse IP du sous-système. Si vous l'exécutez avec des privilèges d'administrateur, il fermera automatiquement wsl, définira les informations relatives à la carte réseau wsl, redémarrera wsl et il sera emballé dans un exe pour tout le monde. utiliser.
Cependant, il y a un problème avec l'utilisation de ce script, c'est-à-dire que parce que wsl est redémarré, la connexion entre docker et wsl sera déconnectée. Vous devez redémarrer le processus docker et le service ssh. Vous pouvez également utiliser un script pour terminer cette opération. , mais cela implique des problèmes de chemin de fichier. , il n'est donc pas fourni. Vous pouvez utiliser chatgpt pour compléter cette petite fonction, ou vous pouvez le faire manuellement.
Redémarrez la commande ssh service et modifiez les paramètres si nécessaire.
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"