windows10 安装 Docker 集成到 WSL 2虚拟机以及Doceker下面安装Hyperf 系统 下面Go安装配置 下载Gin框架

windows10 安装 Docker 集成到 WSL 2虚拟机以及Doceker下面安装Hyperf 系统 下面Go安装配置 下载Gin框架,第1张

查看windows系统的版本号 

        windows 系统到 win10 v2004 的内部版本 19041 或更高版本, 可以使用win10自带的WSL1或WSL2.    1和2的区别:

打开powershell 管理员身份运行 

输入 winver,版本如果达不到。如果不是,到微软官网更新系统。win10更新

 2 此电脑 --点击属性--控制面板\程序\程序和功能 勾选之后  保存

然后重启电脑

确保在BIOS中启用虚拟化。可根据电脑厂家型号查找进入bios方法(开机时狂按某键),以及如何设置。

4 开始执行如下命令

//启用“适用于 Linux 的 Windows 子系统”可选功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

//启用虚拟机平台可选功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

//设置WSL2为默认版本
wsl --set-default-version 2

//设置默认的WSL系统Linux版本

 然后重启电脑

 开机后执行  然后提示 我们开始安装wsl(windows system Linux)子系统的内核 

,输入 wsl --set-default-version 2,如果出现错误代码,则到WSL官网下载linux内核并安装,然后重复一次此步骤。(wsl --help为检测WSL是否安装成功的指令) WSL

完成后到微软商店下载分发版linux。微软商店,ubuntu默认下载20.04版本

 设置用户名  密码

5输入 sudo apt install net-tools,下载工具。

在powershelll中输入wsl --list --verbose,检查WSL用的linux分发版和WSL的版本。

wsl -l -v 查看安装wsl的版本   

//查看安装的wsl版本列表
wsl -l -v
//配置某个linux发行版为版本2
wsl --set-version (distro name) 2
//配置wsl默认版本为版本2
wsl --set-default-version 2
//以某个特定用户运行某一个发行版
wsl -u 
//注销(卸载)某个发行版以重新安装
wsl --unregister 
//为某个发行版配置默认用户
 config --default-user 
//停止所有正在运行的WSL子系统
wsl --shutdown

7 安装docker

下载Docker Desktop Edge 2.1.6.0或更高版本。

请遵循通常的Docker Desktop安装说明来安装Docker Desktop 。 一路安装即可

 然后重启电脑

安装完成后可以更新更高版本 我这里更新到了4.6

8开始设置wsl 与docker的映射关系  

 开始愉快的docker之旅吧  更多学习参考

Docker简介以及Docker历史Docker核心概念、安装、端口映射及常用 *** 作命令(细到令人发指)_小洋人最happy的博客-CSDN博客

 Docker常用命令_chengxuyuanyonghu的博客-CSDN博客_查看docker版本命令

9 安装PHP   目前最前沿的框架    hyperf

https://hyperf.wiki/2.2/#/zh-cn/quick-start/install

开始安装  官网示例

docker run --name hyperf \
-v /workspace/skeleton:/data/project \
-p 9501:9501 -it \
--privileged -u root \
--entrypoint /bin/sh \
hyperf/hyperf:7.4-alpine-v3.11-swoole

 我们自己windows下面  这样安装

设置阿里镜像源重启docker 

 "registry-mirrors": [
    "https://xxxxx.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com"
  ],

 9.1  powershell 拉取镜像: docker pull hyperf/hyperf:7.4-alpine-v3.11-swoole

9.2 启动镜像

 docker run --name hyperfs -v D:/workspace/skeleton:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole

 

9.3 开启hyperf项目  愉快的php协程框架

设置阿里composer 速度更快 下载composer包

 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

 cd /data/project 

cd hyperf-skeleton php bin/hyperf.php start

打开浏览器  成功访问

 

 10  安装Go 

  10.1 Downloads - The Go Programming Language 去下载  

下载完成后   默认安装c盘  或者自定义安装目录后面会用到 

 安装完成后开始设置 GOROOT   GOPATTH   注意在系统的环境变量里面设置 我的电脑-》属性 环境变量设置 

在d盘  设置3个文件夹 src 放项目   pkg 放第三方依赖包 bin编译二进制文件 

安装成功后   查看默认设置 

我们开始设置我们自己的 

 

注意上面如果用户环境变量里面被系统里面默认设置了GROOT 删除

 开启中国最先开始使用go语言生产项目的公司  七牛云 代理  目前中国声称最靠谱的代理 下载go项目 依赖包贼快  

开启  GO111MODULE

GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

 ok 安装成功  写个hello world     src 文件夹下建个hello.go  

 在src下面见一个hello文件夹  然后 写个hello.go文件  

执行go mod init hello 初始化当前的文件夹  安装模块依赖      类似于php的composer  此时在下图发现我们的新建的 pkg文件夹下面多了mod 以及cache 

go install  会把刚刚的hello.go文件生成二进制文件放在bin 下面  

go build 会生成二进制文件在当前的文件夹下面 

执行hello.exe 会得到  go run hello.go 相同的结果

 11 好的   我们开始安装最后一部   安装star星数最多的go 语言写的web框架 

       11.1 新建一个文件夹放gin框架  我们取名jonpgo_gin

       11.2 开始初始化go.mod文件   

      11.3 下载安装依赖包  go get -u github.com/gin-gonic/gin

    11.4 新建一个main.go文件

      切换git 命令 

     curl https://raw.githubusercontent.com/gin-gonic/examples/master/basic/main.go > main.go          执行上述命令快速生成

    11.5 下面的代码  放到里面去

     

package main

import (
  "net/http"

  "github.com/gin-gonic/gin"
)

// 通过字典模拟 DB
var db = make(map[string]string)

func setupRouter() *gin.Engine {
  // 初始化 Gin 框架默认实例,该实例包含了路由、中间件以及配置信息
  r := gin.Default()

  // Ping 测试路由
  r.GET("/ping", func(c *gin.Context) {
    c.String(http.StatusOK, "pong")
  })

  // 获取用户数据路由
  r.GET("/user/:name", func(c *gin.Context) {
    user := c.Params.ByName("name")
    value, ok := db[user]
    if ok {
      c.JSON(http.StatusOK, gin.H{"user": user, "value": value})
    } else {
      c.JSON(http.StatusOK, gin.H{"user": user, "status": "no value"})
    }
  })

  // 需要 HTTP 基本授权认证的子路由群组设置
  authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
    "foo":  "bar", // 用户名:foo 密码:bar
    "manu": "123", // 用户名:manu 密码:123
  }))

  // 保存用户信息路由
  authorized.POST("admin", func(c *gin.Context) {
    user := c.MustGet(gin.AuthUserKey).(string)

    // 解析并验证 JSON 格式请求数据
    var json struct {
      Value string `json:"value" binding:"required"`
    }

    if c.Bind(&json) == nil {
      db[user] = json.Value
      c.JSON(http.StatusOK, gin.H{"status": "ok"})
    }
  })

  return r
}

func main() {
  // 设置路由信息
  r := setupRouter()
  // 启动服务器并监听 8080 端口
  r.Run(":8080")
}

     11.4 开始启动项目   访问路由   go run main.go

 

 

Gin框架安装  测试完成   更多的go  gin 知识大家慢慢学习      谢谢大家的观帖   也写了不少  点个赞吧    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/990066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存