win10 wsl,docker desktop ,ssh,ssl,gitLab安装完整方案

一. docker安装

1. 开启hyper-v (确认是否开启最简单方式)

在这里插入图片描述

2. 未开启操作如下

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

新建一个批处理文件,将以上代码复制进去,并保存为enableHyperV.bat文件。双击运行此文件,即可开启Hyper-V。 需要重启
注意:如果系统中已经安装了Hyper-V,则可以忽略此步骤。

3. 修改注册表,伪装专业版

以管理员身份打开cmd,执行如下

REG ADD “HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion” /v EditionId /T REG_EXPAND_SZ /d Professional /F

二. 安装Linux发行版

1.查看可用的版本wsl

wsl --list --online

请使用“wsl --install -d <分发>”安装。 例如:
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
PS C:\Users\Administrator> wsl --install -d Ubuntu-18.04

2.WSL安装

手动安装
wsl --install Ubuntu-24.04
在这里插入图片描述
输入自定义用户名(除root和不要大写,root是根用户),然后按照提示输入密码,即安装上WSL

3. 启用

WSL安装成功后,Docker Desktop要想能用,还需要启用WSL,输入如下命令WSL安装成功后,Docker Desktop要想能用,还需要启用WSL,输入如下命令WSL安装成功后,Docker Desktop要想能用,还需要启用WSL,输入如下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

4. 检查是否开启成功

右键管理员权限打开PowerShell,输入如下命令
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
在这里插入图片描述

下载Linux发行版
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

参考链接

https://learn.microsoft.com/zh-cn/windows/wsl/install

三. 常用命令

1.查看已安装的 Linux 发行版

wsl -l -v
在这里插入图片描述

2.设置默认系统

wsl --set-default Ubuntu-22.04

3.启动 Linux 发行版

wsl -d Ubuntu-22.04

4.终止运行的系统

wsl -t Ubuntu-22.04

5.注销指定系统

wsl --unregister Ubuntu-22.04

6. 开始菜单可以使用

在这里插入图片描述

7.其他命令,可节省空间

导出和导入 Linux 发行版(修改安装位置)
wsl --export Ubuntu-24.04 F:\DockOs\Ubuntu2404\ubuntu24.04.tar
wsl --unregister Ubuntu-24.04
wsl --import Ubuntu-24.04 F:\DockOs\Ubuntu2404\ubuntu24.04.tar
ubuntu2204.exe config --default-user root

8. 更改或重置密码

请打开 Linux 发行版并输入命令:passwd。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
如果忘记了 Linux 分发版的密码:

请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root

如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。

在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd ,其中 是发行版中帐户的用户名,而你忘记了它的密码。

系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:exit。

root 密码好像有长度校验,不能设置过短的密码。
列如:root123456

四. wsl安装的系统和vmware安装的系统没什么差别,可以把它理解成一个shell密码命令行工具,当然也可以配置ssh使用xsheel连接

1. 安装net工具

apt install net-tools
查看IP地址
ifconfig查看IP地址
在这里插入图片描述

2. 安装ssh服务,开启远程权限,shell登录

ssh服务安装
卸载ssh服务
apt remove openssh-server 
重装ssh服务
apt install openssh-server 
开启SSH服务
sudo service ssh start  
设置SSH服务在开机时自动启动
sudo systemctl enable ssh 
编辑/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config

修改ssh服务监听端口和监听地址
Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

 # To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

开放22端口,允许SSH远程登录
sudo service ssh restart

五. ssh常用命令

#### 远程连接
ssh root@192.168.1.100   # 连接远程服务器

#### 远程命令执行        
ssh root@192.168.1.100 "ls -l"  # 远程执行命令

#### 远程文件传输
scp /root/test.txt root@192.168.1.100:/root/test.txt  # 远程文件传输

#### 远程端口转发
ssh -L 8080:192.168.1.100:80 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口
#### 远程端口转发(动态端口)
ssh -D 8080 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口(动态端口)
#### 远程端口转发(动态端口)
ssh -N -f -L 8080:192.168.1.100:80 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口(动态端口)
#### 远程端口转发(动态端口)
### ubuntu常见命令
#### 查看系统信息   
uname -a    # 查看系统信息

#### 查看CPU信息            
cat /proc/cpuinfo    # 查看CPU信息
#### 查看内存信息                   
free -m    # 查看内存信息            
#### 查看磁盘信息                   
df -h    # 查看磁盘信息                         
#### 查看网络信息                       
ifconfig    # 查看网络信息          
#### 查看进程信息                       
ps -ef    # 查看进程信息        


#### 查看端口信息                       

netstat -anp    # 查看端口信息          

### 文件目录常用命令        

#### 切换目录           

cd /root    # 切换目录          

#### 查看当前目录下的文件           

ls -al    # 查看当前目录下的文件                

#### 创建目录           

mkdir /root/test    # 创建目录                  

#### 删除目录                       

rm -rf /root/test    # 删除目录             


#### 复制文件                               

cp /root/test.txt /root/test1.txt    # 复制文件          



#### 移动文件                                   

mv /root/test.txt /root/test1.txt    # 移动文件          


#### 查看文件内容                                           

cat /root/test.txt    # 查看文件内容          


#### 查看文件大小                                           

du -h /root/test.txt    # 查看文件大小          


#### 查看文件权限                                           

ls -l /root/test.txt    # 查看文件权限          


#### 查看文件类型                                           

file /root/test.txt    # 查看文件类型          


#### 查看文件内容(指定行数)                                           

head -n 10 /root/test.txt    # 查看文件内容(指定行数)          


#### 查看文件内容(倒序)                                           

tail -n 10 /root/test.txt    # 查看文件内容(倒序)          


#### 查看文件内容(搜索关键字)                                           

grep "关键字" /root/test.txt    # 查看文件内容(搜索关键字)            


#### 查看文件内容(统计关键字出现次数)                                           

grep -c "关键字" /root/test.txt    # 查看文件内容(统计关键字出现次数)          




#### 查看文件内容(统计关键字出现位置)                                           


grep -n "关键字" /root/test.txt    # 查看文件内容(统计关键字出现位置)          

 

#### 压缩文件                                           

tar -zcvf /root/test.tar.gz /root/test    # 压缩文件          

 
#### 解压文件                                           

tar -zxvf /root/test.tar.gz    # 解压文件          


### 文件操作命令

#### 显示当前目录下的文件
ls          

#### 显示当前目录下的文件(详细信息)            
ls -l          

创建文件
touch test.txt              

#### 显示文件内容                   

cat test.txt            

# 查找文件
find / -name "test.txt"
# 按文件名查找文件
find / -name "test.txt"
# 按文件类型查找文件  
find / -type f -name "*.txt"
# 按文件大小查找文件
find / -size +10M -name "test.txt"
# 按文件权限查找文件
find / -perm 777 -name "test.txt"
# 按文件属主查找文件
find / -user root -name "test.txt"
# 按文件属组查找文件
find / -group root -name "test.txt"
# 按文件修改时间查找文件
find / -mtime -1 -name "test.txt"
# 按文件创建时间查找文件
find / -ctime -1 -name "test.txt"
# 按文件更改时间查找文件
find / -mtime -1 -name "test.txt"
# 按文件内容查找文件  
find / -type f -name "*.txt" -exec grep "关键字" {} \;
# 按文件内容查找文件并显示行号
find / -type f -name "*.txt" -exec grep -n "关键字" {} \;
# 按文件内容查找文件并显示行号和文件名  
#### 远程连接
ssh root@192.168.1.100   # 连接远程服务器

#### 远程命令执行        
ssh root@192.168.1.100 "ls -l"  # 远程执行命令

#### 远程文件传输
scp /root/test.txt root@192.168.1.100:/root/test.txt  # 远程文件传输

#### 远程端口转发
ssh -L 8080:192.168.1.100:80 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口
#### 远程端口转发(动态端口)
ssh -D 8080 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口(动态端口)
#### 远程端口转发(动态端口)
ssh -N -f -L 8080:192.168.1.100:80 root@192.168.1.100  # 远程端口转发 8080 端口转发到 192.168.1.100 80 端口(动态端口)
#### 远程端口转发(动态端口)
### ubuntu常见命令
#### 查看系统信息   
uname -a    # 查看系统信息

#### 查看CPU信息            
cat /proc/cpuinfo    # 查看CPU信息
#### 查看内存信息                   
free -m    # 查看内存信息            
#### 查看磁盘信息                   
df -h    # 查看磁盘信息                         
#### 查看网络信息                       
ifconfig    # 查看网络信息          
#### 查看进程信息                       
ps -ef    # 查看进程信息        


#### 查看端口信息                       

netstat -anp    # 查看端口信息          

### 文件目录常用命令        

#### 切换目录           

cd /root    # 切换目录          

#### 查看当前目录下的文件           

ls -al    # 查看当前目录下的文件                

#### 创建目录           

mkdir /root/test    # 创建目录                  

#### 删除目录                       

rm -rf /root/test    # 删除目录             


#### 复制文件                               

cp /root/test.txt /root/test1.txt    # 复制文件          



#### 移动文件                                   

mv /root/test.txt /root/test1.txt    # 移动文件          


#### 查看文件内容                                           

cat /root/test.txt    # 查看文件内容          


#### 查看文件大小                                           

du -h /root/test.txt    # 查看文件大小          


#### 查看文件权限                                           

ls -l /root/test.txt    # 查看文件权限          


#### 查看文件类型                                           

file /root/test.txt    # 查看文件类型          


#### 查看文件内容(指定行数)                                           

head -n 10 /root/test.txt    # 查看文件内容(指定行数)          


#### 查看文件内容(倒序)                                           

tail -n 10 /root/test.txt    # 查看文件内容(倒序)          


#### 查看文件内容(搜索关键字)                                           

grep "关键字" /root/test.txt    # 查看文件内容(搜索关键字)            


#### 查看文件内容(统计关键字出现次数)                                           

grep -c "关键字" /root/test.txt    # 查看文件内容(统计关键字出现次数)          




#### 查看文件内容(统计关键字出现位置)                                           


grep -n "关键字" /root/test.txt    # 查看文件内容(统计关键字出现位置)          

 

#### 压缩文件                                           

tar -zcvf /root/test.tar.gz /root/test    # 压缩文件          

 
#### 解压文件                                           

tar -zxvf /root/test.tar.gz    # 解压文件          


### 文件操作命令

#### 显示当前目录下的文件
ls          

#### 显示当前目录下的文件(详细信息)            
ls -l          

创建文件
touch test.txt              

#### 显示文件内容                   

cat test.txt            

# 查找文件
find / -name "test.txt"
# 按文件名查找文件
find / -name "test.txt"
# 按文件类型查找文件  
find / -type f -name "*.txt"
# 按文件大小查找文件
find / -size +10M -name "test.txt"
# 按文件权限查找文件
find / -perm 777 -name "test.txt"
# 按文件属主查找文件
find / -user root -name "test.txt"
# 按文件属组查找文件
find / -group root -name "test.txt"
# 按文件修改时间查找文件
find / -mtime -1 -name "test.txt"
# 按文件创建时间查找文件
find / -ctime -1 -name "test.txt"
# 按文件更改时间查找文件
find / -mtime -1 -name "test.txt"
# 按文件内容查找文件  
find / -type f -name "*.txt" -exec grep "关键字" {} \;
# 按文件内容查找文件并显示行号
find / -type f -name "*.txt" -exec grep -n "关键字" {} \;
# 按文件内容查找文件并显示行号和文件名  

六.docker desktop安装

选择Docker Engine,在其中输入(这里使用的是163的源,如果想要使用其他源可以自行设置,github上有个项目:docker_mirror可以自动检测在你的网络环境下那个源是最快的)

在这里插入图片描述


{
"registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "https://reg-mirror.qiniu.com"
  ]
} 
{
"registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "https://reg-mirror.qiniu.com"
  ]
} 

在这里插入图片描述

七. doocker 常见命令

# 启动docker
sudo service docker start
# 重启docker
sudo service docker restart
# 停止docker
sudo service docker stop


获取当时所有镜像(docker images)
docker image ls
# 或者
docker images 
拉取镜像(docker pull) 
# 官方镜像
docker image pull 镜像名称 
# 或简写为 
docker pull 镜像名称
# 比如
docker pull ubuntu
docker pull ubuntu:16.04

# 个人镜像
docker pull 仓库名称/镜像名称
docker pull xunmi/django

# 第三方仓库拉去
docker pull 第三方仓库地址/仓库名称/镜像名称
docker pull hub.c.163.com/library/mysql:latest
(默认仓库名为library,所有从官方获取镜像相当于`sudo docker image pull library/镜像名称`) 


删除镜像(docker rmi)
docker image rm 镜像名或镜像ID 或 docker rmi 镜像名或镜像ID
docker image rm hello-world
docker rmi 9e64176cd8a2

docker rm: 删除一个或多个 容器
docker rmi: 删除一个或多个 镜像
docker prune: 用来删除不再使用的 docker 对象

docker run [可选参数] 镜像名 [向启动容器中传入的命令]

# 启动一个容器          
docker run -it --name my-ubuntu ubuntu:16.04 /bin/bash          
# -it: 让容器的标准输入、输出和错误输出保持打开状态,即可以进行交互式操作。             
# --name: 为容器指定一个名称,方便后续操作。             
# ubuntu:16.04: 指定要启动的镜像,这里是Ubuntu 16.04。             
# /bin/bash: 容器启动后默认执行的命令,这里是bash。             

# 启动一个后台运行的容器
docker run -d --name my-ubuntu-daemon ubuntu:16.04 /bin/bash


# 停止一个容器          
docker stop 容器名或容器ID              
# 停止my-ubuntu容器                           
docker stop my-ubuntu          
# 停止my-ubuntu-daemon容器                                   
docker stop my-ubuntu-daemon          
 
docker search 关键字
#下载影像,镜像位置填入上面搜索出来的地址
docker pull 影像
#创建启动容器,等同于先执行docker create命令,再执行docker start命令
docker run
# 启动容器
docker start 容器id   
# 重启容器
docker restart 容器id 
# 停止当前正在运行的容器
docker stop 容器id    
# 强制停止当前容器
docker kill 容器id   
#查看容器 
docker ps 
#进入容器
docker exec -it 容器id  

八.此处我展示使用docker desktop展示(安装gitlab为例)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装的gitlab 查看初始密码

cat /etc/gitlab/initial_root_password

grep ‘Password:’ /opt/gitlab/config/initial_root_password

或者直接在volume中查看即可
在这里插入图片描述

创建ssl证书目录

[root@cloud ~]# mkdir /opt/gitlab/config/ssl/
在这里插入图片描述

开启https支持,新版本的gitlab必须开启https支持,否则无法clone代码

在这里插入图片描述

编辑gitlab.rb文件

sudo vi /etc/gitlab/gitlab.rb

找到并修改以下内容 (如果是docker desktop安装的gitlab,直接在desktop的volume中修改gitlab.rb文件即可,特别方便,常用的配置文件均在里面)

external_url ‘https://192.168.134.1’
nginx[‘redirect_http_to_https’] = true
nginx[‘ssl_certificate’] = “/etc/gitlab/gitlab.crt”
nginx[‘ssl_certificate_key’] = “/etc/gitlab/gitlab.key”

配置完成后一定重启当前的container

九. gitlab使用

配置https后使用对应443端口访问
在这里插入图片描述
在这里插入图片描述

注意: 配置了端口的一定使用对应端口访问
比如:https://192.168.134.1:9443
git config --global user.name “Your Name”
git config --global user.email “your.email@example.com”

验证配置是否生效:
在终端执行命令git config --list即可验证。

SSH密钥生成:
在本地终端运行以下命令:

ssh-keygen -t rsa -b 4096 -C “manixchensunshine@163.com”

假设我有github.com 、gitlab.com 和 bitbucket.org三个云端的账号,各自的注册邮箱和用户名不同。

建议:linux 或 mac 用户推荐在 ~/.ssh 路径下运行命令行,Windows用户推荐在“ C:\Users\用户名.ssh ”目录下运行命令行

说明:

-t rsa 表示加密方式

-C 表示注册不同云端仓库时所用的邮箱

-f 表示自定义生成秘钥的名称

#--------------------------------------

生成 github.com 公私钥对

ssh-keygen -t rsa -C “manixchen@gmail.com” -f github

生成 gitlab.com 公私钥对

ssh-keygen -t rsa -C “manixchensun@gmail.com” -f gitlab

说明:

-t rsa 表示加密方式

-C 表示注册不同云端仓库时所用的邮箱

-f 表示自定义生成秘钥的名称

#--------------------------------------

生成 github.com 公私钥对

ssh-keygen -t rsa -C “manixchen@gmail.com” -f github

生成 gitlab.com 公私钥对

ssh-keygen -t rsa -C “manixchensun@163.com” -f gitlab

在安装了git的机器上,关闭ssl验证,不然的话可能没法clone代码

export GIT_SSL_NO_VERIFY=true
git config --global http.sslVerify “false”

比较重要

//取消http代理(尝试作用不大)只需执行上面两行命令后,就可以clone代码了。
git config --global --unset http.proxy
//取消https代理
git config --global --unset https.proxy
https://192.168.134.1:9443/webjsj/reactspark.git

注意:下面提示:::如果是使用https协议,则需要关闭ssl验证。

$ git clone https://192.168.134.1:9443/root/reactspark.git
Cloning into 'reactspark'...
fatal: unable to access 'https://192.168.134.1:9443/root/reactspark.git/': SSL certificate problem: self-signed certificate
$ git clone https://192.168.134.1:9443/root/reactspark.git
Cloning into 'reactspark'...
fatal: unable to access 'https://192.168.134.1:9443/root/reactspark.git/': SSL certificate problem: self-signed certificate

… 注意,由于忽略了对HTTPS证书的验证,可能会存在安全风险,请谨慎使用 …

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成后根据仓库提示,可以关联项目到gitlab上,然后就可以进行代码的管理了。 如果是初始化项目名直接clone即可

查看现有远程仓库的信息(git remote -v);
删除现有的远程仓库信息(git remote rm origin);
建立新的远程仓库地址(git remote add origin + 新的远程仓库地址);

完整的 wsl,docker desktop ,ssh,ssl,gitLa,安装使用流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值