摘要: Docker容器管理(操作对象是容器) 容器启停 启停管理 通过一个镜像创建一个容器 查看已启动的容器列表 启、停、重启已经在容器列表的容器 查看容器使用的资源 删除在管理列表里的images 通过一个镜像创建一个容器 # 如果本地不存images会向远程仓库获取 docker run -itd - 阅读全文
posted @ 2023-01-11 18:20 天帅 阅读(99) 评论(0) 推荐(0) 编辑
摘要: channel 什么是channel channel就是一个先进先出的队列,就是一种排队的机制通道,分解它的属性: 排队 阻塞(通道满了就等等着,好比去火车站排队一样,没有人检票了就的在检票口等着) 先进先出 CSP(Communicating Sequential Processes)通信实现数据 阅读全文
posted @ 2021-10-20 15:15 天帅 阅读(285) 评论(0) 推荐(0) 编辑
摘要: Docker镜像 什么是镜像 镜像: 只读的(镜像文件禁止修改的) 分层的(优化空间使用,相同层使用同一份数据,每层数据都在/var/lib/docker/overlay2/存着) 程序以及依赖二进制文件集合(程序打包) 简单点理解:一堆文件 容器: 镜像(只读) + 一层读写层 + 程序运行底层基 阅读全文
posted @ 2021-07-13 21:42 天帅 阅读(145) 评论(0) 推荐(0) 编辑
摘要: Docker安装部署 选择 docker支持的平台 Linux MAC WIN https://docs.docker.com/engine/install/ 您的Mac必须满足以下要求才能成功安装Docker Desktop: 硬件: - Mac硬件必须是2010年或更新的型号,并且具有英特尔对内 阅读全文
posted @ 2021-07-13 21:38 天帅 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 容器这个名词的由来 说道这个容器这个词,包括我们在网络上搜索的时候容器对应的最多的也是集装箱 那么容器这个词是怎么由来呢?在早起海运的时候货物都是随便堆放的,这对于后期的卸载和管理都是一个不小的难题 包装困难,每个货物都需要有自己的包装 装卸困难,每个货物的大小、重量都不一样需要不同的装卸工具 集装 阅读全文
posted @ 2021-07-13 21:26 天帅 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 这篇文章的目的就是把最常用的命令列出来,没时间看速查命令使用 备注 实验环境:Centos7.4 3.10.0-693.el7.x86_64 常用命令 Docker镜像管理(操作对象是镜像) 检索镜像 docker search redis 下载镜像 docker pull docker.io/re 阅读全文
posted @ 2021-07-13 21:21 天帅 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 概念回顾 进程/线程 进程是程序在操作系统中的一次执行过程,每次程序执行的时候操作系统都会给这个程序打一个标识:资源、ID,它是一个独立的单位 线程是进程的一个执行实体,是 CPU 调度和分派的基本单位 一个进程可以创建和撤销多个线程,同一个进程中的多个线程之间可以并发执行 并发/并行 拿两个任务来 阅读全文
posted @ 2021-06-05 09:14 天帅 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 前置需求 Docker好用 MarkDown语法简单 基础构建 运行init初始化目录 # 初始化一个工作目录最好是git目录方便上传(windos自己手动创建一个) # Git上创建一项目然后下载下来(建议) 或者本地创建一个目录: mkdir gitbook && cd gitbook git 阅读全文
posted @ 2021-04-23 16:49 天帅 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 编程方式 上面的文章通过func函数,使我们可以重复的使用代码,称之为函数式编程 面向对象编程:通过对象 + 方法 ,让操作基于一个对象,而不只是来回的掉函数(并且可以使用面向对象的其他优点) 面向对象的优点这里不过多的赘述,感兴趣的自己看下 举个最简单的例子: func 吃饭(){} func 睡 阅读全文
posted @ 2021-02-28 17:03 天帅 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 函数 函数是用来解决重复代码的,它把相同功能的代码:组织、封装到一个函数内 通过函数就可以调用,这个代码块 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民” 一等(头等)函数、支持头等函数(First Class Function)的编程语言,可以把函数赋值给变量,也可以把函 阅读全文
posted @ 2021-01-21 00:00 天帅 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 什么是结构体 回顾下slice和map他们都是单类型的 func main() { // 切片或者数组的类型只能存一种 s1 := []int{0, 1, 2, 3, 4, 5} // map也是同样它的这个类型的值也只能是单类型的 m1 := map[string]string{"name": " 阅读全文
posted @ 2021-01-16 08:51 天帅 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 为什么会有map array和slice优点 可以存储相同类型的的数据比如: s1 := []int{1,1,1,1,1,1} 在知道下标的情况下访问数据速度贼快: s2 := []string{"v0", "v1", "v2"} 访问: s2[1] 缺点 如果想判断某个值是否存在或者不知道数据的下 阅读全文
posted @ 2021-01-10 19:19 天帅 阅读(108) 评论(0) 推荐(0) 编辑
摘要: #聊一聊切片 数组存在的问题 数组长度在定义的时候就已经定义好了,且不可以修改 数组长度属于类型的一部分,所以数组有很多的局限性 package main import ( "fmt" "reflect" ) func main() { a := [3]int{1, 2, 3} fmt.Printl 阅读全文
posted @ 2021-01-04 23:32 天帅 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组长度和数组类型不可修改 数组的声明 数组声明的格式:var 数组变量名 [元素数量]T 先声明在赋值 p 阅读全文
posted @ 2020-12-28 08:13 天帅 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 获取用户输入 有时候程序需要根据用户的选择来执行不同的代码逻辑,这个时候就需要获取用户的输入了 fmt.Scan fmt.Scanln fmt.Scanf fmt.Scan 例子 import "fmt" func main() { fmt.Print("请输入用户名和年龄通过空格区别:") var 阅读全文
posted @ 2020-12-26 21:39 天帅 阅读(217) 评论(0) 推荐(0) 编辑