Le guide le plus complet de l'histoire pour vous apprendre à jouer avec wsl2+docker et à créer votre propre environnement de développement à partir de zéro

1. Installez WSL

Nécessite une version Windows supérieure à

d7bf687a3c3a654b7fee10568ea538d8.png

Rechercher pour activer ou désactiver les fonctionnalités Windows

36ad77bb8c9f4314b650d49d0c80b8ed.png

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

70315604273b452584e084dd4dd01f27.png

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.

e4d4b9658f4b42bb8752ca84d75377e4.png

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

20ee67686376478fad02905b22ab773f.png

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

7eb77bd241f1493489c332a98338c274.png

Vérifiez l'ubnutu que vous avez installé

 cdc0ac2185c94feeb72548e0fb98572a.png

 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

9ca5bbdaf547478cbad6b2c818fedb8f.png

 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.

Définir le téléchargement de la version officielle du sous-système ip.exe 丨 Téléchargement de la dernière version 丨 Téléchargement de la version verte 丨 Téléchargement de l'application - 123 disque cloud

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"

Acho que você gosta

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