docker相关知识(1)
docker相关知识(1)#获取镜像#获取镜像,生成容器 nginx web服务器,运行一个端口80的网站 #在宿主机上#1.开启服务器#2.在服务器上安装好nginx所需依赖关系#3.安装nginx yum install nginx -y#4.修改nginx.conf配置文件#5.启动nginx#6.客户端去访问nginx#比较耗时 docker获取nginx镜像 #获取镜像,从配置好的docker镜像站,拉取镜像#先搜索以下镜像文件[root@ecs-402020 ~]# docker search nginx[root@ecs-402020 ~]# docker pull nginx:latest #默认最新 docker查看镜像 [root@ecs-402020 ~]# docker rmi "IMAGE ID" #删除镜像[root@ecs-402020 ~]# docker image ls docker运行镜像,创建出具体的容器,容器中跑着nginx的服务 [root@ecs-402020 ~]# docker run 参数 镜像的名字/i ...
day01懂了VMware/KVM/Docker原来是这么回事儿
day01 懂了!VMware/KVM/Docker原来是这么回事儿linux部署形式vmware虚拟机+centos=得到一个可以使用的linux系统如上的大前提,是得有个宿主机 lnmp集群部署mysql集群部署zabbix监控系统 之前都是在自己安装的Linux机器上,进行部署 安装 修改配置文件 启动 适用各种功能 引出为什么使用docker 物理服务器:真实购买的一台硬件机器 部署非常慢 成本非常高 资源浪费 难于迁移和扩展 可能会被限定硬件厂商 后来一台物理机可以通过vmware虚拟化安装多个操作系统,每一个应用独立运行在一个vm(cpu必须支持虚拟化技术)但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容 虚拟化技术什么是虚拟化技术?维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算 ...
Go-09结构体
Go-09结构体结构体的定义package mainimport "fmt"type Person struct{ Name string Age int}func main(){ var p1 Person p1.Name="张三" p1.Age=18 fmt.Printf("%#v",p1) p2:=Person{ Name:"李四", Age:20, } fmt.Printf("%#v",p2) p3:=new(Person) p3.Name="王五" p3.Age=20 fmt.Printf("%#v",p3)} 从上面来看定义还是十分的简单的在此说明一下结构体名大写表示允许外部访问,变量名大小表示公有变量. 结构体定义方法自定义方法继承父类方法和属性package mainimport "fmt&qu ...
witch on the holy night
最近今天有点摆烂明明大三了却还是如此任性。当然自认为也没有浪费这一段时间吧,我再次重温了魔法使之夜。 魔法使之夜是一部Type-Moon的一部视觉小说,我是1几年的作品了吧, 我第一次接触是在大二这一段时间,跨越近十年的作品当时带给我的感动,让人难以述说。 在此之前我想说的是我并不是一个严格的月厨,对于一些游戏设定我也不甚了解,但就算这样那有如何呢?透过蘑菇细腻的文字配上深泽秀行悠远宁静的音乐,出色的战斗演示,为我们上演了魔法的奇迹,那一晚的感动 故事发生在一个正在现代化小镇上,城市的发展与乡村的保留的这一环境下总是会给人一种悲伤的感觉。故事的内核上也算是boy meets girl吧。 突然打不出字了,唉,千万思绪卡在胸中。 我不知道何事能再次回到那座洋房里静静听着蘑菇讲着属于他们三人的故事,或许第二部是我已工作了吧,但我依然相信我回到那里,继续听着这一段故事,就算是一个人也要好好的过啊。 封面让我好好想一下
08time
先讲一个冷知识go语言诞生的日期是2006年1月2号15点4分5秒 time.Now()package mainimport( "fmt")func main{ timeobj:=time.Now() fmt.Println(timeobj)} 2022-12-03 09:57:30.4484774 +0800 CST m=+0.003 这便是打印出的结果,看着是很不习惯的,于是我们将其格式化输出看看 fmt.Println(timeobj.Format("2006-01-02-03-04-05"))fmt.Println(timeobj.Format("2006-01-02-15-04-05")) 不知大家是否发现这个格式化的时间与go诞生的时间是一样的,第一种代表12小时制,第二种代表24小时制其结果分别是:2022-12-03 10:01:562022-12-03 10:01:56因为现在还是早上,并不能看出区别 println(timeObj.Year())println( ...
阳光正好
# 夏至>一生的时间很短 短到不过是两颗新之间的距离{% tip %}default{% endtip %}
07panic recover 监听异常
go语言不像python,java有try,cathch,所以我们需要手动抛出```gofunc fn1(a,b int) int{ return a/b} 这是一个很经典的函数,我们都知道当除数为0时,肯定是除不了的,我们此时调用 fn1(10,0) 我们便可以看到此时抛出了除数不为0的异常 panic当然我们也可以手动的抛出 func fn1(a,b int) int{ if b==0{ panic("runtime error: integer divide by zero") } return a/b}//在主函数内func main(){ fn1(10,0) fmt.Println("10")} 此时的结果和上面的截图一样,程序抛出异常后就结束了导致我们后面的fmt.Println(“10”)无法执行 recoverpanic 可以在任何地方引发,但recover只有在defer调用的函数中有效,结合我们上一篇章的defer func ...
06函数相关more
递归求1~100的和func fn1(a int) int{ if a>1{ return a+fn1(a-1) }else{ return 1 }} 函数闭包全局变量特点: 1.常驻内存 2.污染内存 局部变量特点: 1.不常驻内存 2.不污染内存 闭包: 1.可以让一个变量常驻内存 2.可以让一个变量不污染全局 闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的常见的方式就是在一个函数里创建另一个函数,通过另一个函数去访问闭包过多影响程序性能 func fn2() func() int{ var a=10 return func fn2_1() int{ a=a+1 return a }} 然后我们在主函数内调用 a:=fn2()fmt.Println(a())fmt.Println(a())fmt.Println(a()) 第一个打印结果便是11,那后面两个呢?结合闭包所说可以让一个便变量常驻内存便 ...
05路由分组
很明显随着我们后期的开发main函数的路由会变得很多,这时候便有路由分组的办法了根据我们路由的有不同功能,不难想到我们会把同一组的分在一起,比如属于admin的。属于default的,user的 如图所示我们在routers下建立三个路由,我们用到的路由分组的方法是 defaultRouters:=route.Group("/"){ defaultRouter.GET("/",func(context *gin.Context){ context.HTML(200,"default/index.html",nil) }) defaultRouter.GET("/news",func(context *gin.Context){ context.HTML(200,"default/news.html",nil) })} 注意Group方法的大括号得换行占一行,这样我们就建立了/,/ ...
04 get,post接受前台的值
接受get请求的传值例如http://localhost:8080?username=xxx&age=xxx route.GET("/",func(context *gin.Context){ var useinfo=map[string]string{ "username":context.Query("username"), "age":context.Query("age"), "name":context.Query("name"), "page":context.DefaultQuery("query","1"), } context.JSON(200,userinfo)}) 这里我们很明显定义了一个map来接收数据,DefaultQuery表示如果没有查询到该值,则在 ...


