资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

go语言模拟网站操作 go语言网页

如何使用Go语言是操作Docker

Docker 提供了一个与 Docker 守护进程交互的 API (称为Docker Engine API),我们可以使用官方提供的 Go 语言的 SDK 进行构建和扩展 Docker 应用程序和解决方案。

创新互联建站专注于和布克赛尔蒙古网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供和布克赛尔蒙古营销型网站建设,和布克赛尔蒙古网站制作、和布克赛尔蒙古网页设计、和布克赛尔蒙古网站官网定制、小程序制作服务,打造和布克赛尔蒙古网络公司原创品牌,更为您提供和布克赛尔蒙古网站排名全网营销落地服务。

转自:

整理:地鼠文档

通过下面的命令就可以安装 SDK 了:

该部分会介绍如何使用 Golang + Docker API 进行管理本地的 Docker。

第一个例子将展示如何运行容器,相当于 docker run docker.io/library/alpine echo "hello world" :

还可以在后台运行容器,相当于 docker run -d bfirsh/reticulate-splines :

列出正在运行的容器,就像使用 docker ps 一样:

如果是 docker ps -a ,我们可以通过修改 types.ContainerListOptions 中的 All 属性达到这个目的:

通过上面的例子,我们可以获取容器的列表,所以在这个案例中,我们可以去停止所有正在运行的容器。

通过指定容器的 ID,我们可以获取对应 ID 的容器的日志:

获取本地所有的镜像,相当于 docker image ls 或 docker images :

拉取指定镜像,相当于 docker pull alpine :

除了公开的镜像,我们平时还会用到一些私有镜像,可以是 DockerHub 上私有镜像,也可以是自托管的镜像仓库,比如 harbor 。这个时候,我们需要提供对应的凭证才可以拉取镜像。

值得注意的是:在使用 Docker API 的 Go SDK 时,凭证是以明文的方式进行传输的,所以如果是自建的镜像仓库,请务必使用 HTTPS !

我们可以将一个已有的容器通过 commit 保存成一个镜像:

当然,除了可以管理本地的 Docker , 我们同样也可以通过使用 Golang + Docker API 管理远程的 Docker 。

默认 Docker 是通过非网络的 Unix 套接字运行的,只能够进行本地通信( /var/run/docker.sock ),是不能够直接远程连接 Docker 的。

我们需要编辑配置文件 /etc/docker/daemon.json ,并修改以下内容(把 192.168.59.3 改成你自己的 IP 地址),然后重启 Docker :

创建 client 的时候需要指定远程 Docker 的地址,这样就可以像管理本地 Docker 一样管理远程的 Docker 了:

现在已经有很多可以管理 Docker 的产品,它们便是这样进行实现的,比如: portainer 。

81.go + vue实现web应用程序

前端框架越来越丰富,前后端分离已经是大多数软件团队采取的模式了。vue使用的场景也越来越多。

go本来使用template模板来进行前端的表现,现在可以用vue来分担很大一部分工作了。

通常直接使用go语言写后端,然后使用静态模板加载渲染前端,前端获取后端提供的数据是使用{{ }}符号,2个套在一起的花括号。这个也是vue使用的数据表现方式。

如果go+vue来协同工作的话,需要对vue进行一点设置。比如把{{ }}的方式改为[[ ]]的方式。

首先我们要知道,vue的使用,需要在页面中加载vue.js或vue.min.js

纯静态网页使用vue是这样的(给个html例子)

然后我们实现一个go的简单web服务和模板页面

这个go服务器通过端口 1989 展示服务器页面,提供了一个静态文件路径 htmlpage,我们把vue.js和index.html文件都放置在htmlpage路径里。

go服务器还用模板给前台页面提供了一个News结构的数据,数据包括:Title,Content,Author的值。

在index.html页面中,加载vue.js的时候需要带上静态路径 htmlpage

在 new 一个 vue 变量的时候,必须有一句来设置包裹数据的符号,我们这里设置这个符号为[[ ]]

同时,所有需要由 vue 渲染的数据,都写成类似这样的样子

在 go + vue 方式下的完整模板文件 index.html

此页面中{{ }}包裹的数据是由go从后端提供的数据( 例如:{{.Title}}),而[[ ]]包裹的数据,是vue渲染的数据。

只是把 Vue里的数据,改为由go后端提供即可。

好吧,作者已经在向月亮示爱了。呵呵 _

运行一下程序,看修改模板后的效果。

Go语言-一个简单的MockServer实现

用于在开发阶段,服务端接口没有正式完成之前,模拟接口请求,便于客户端测试。

建立一个文件夹(Config),放置所有的接口文件

将接口按如下json格式存储到成文件,一个接口对应一个文件

如登录接口:./Config/login.json

定义接口

读取所有的接口配置文件

Go语言文件操作

本文主要介绍了Go语言中文件读写的相关操作。

文件是什么?

计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。

os.Open() 函数能够打开一个文件,返回一个 *File 和一个 err 。对得到的文件实例调用 close() 方法能够关闭文件。

为了防止文件忘记关闭,我们通常使用defer注册文件关闭语句。

Read方法定义如下:

它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回 0 和 io.EOF 。 举个例子:

使用for循环读取文件中的所有数据。

bufio是在file的基础上封装了一层API,支持更多的功能。

io/ioutil 包的 ReadFile 方法能够读取完整的文件,只需要将文件名作为参数传入。

os.OpenFile() 函数能够以指定模式打开文件,从而实现文件写入相关功能。

其中:

name :要打开的文件名 flag :打开文件的模式。 模式有以下几种:

perm :文件权限,一个八进制数。r(读)04,w(写)02,x(执行)01。


本文标题:go语言模拟网站操作 go语言网页
当前链接:http://cdkjz.cn/article/ddjdoce.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220