草庐IT

Linux_Docker

全部标签

linux - 从 Go 访问 Linux 网络 API

我想用Go编写一个简单的实用程序来管理Linux上的网络(有线和无线)连接,类似于NetworkManager和WICD的软件。在Go中访问LinuxAPI的正确方法是什么?我应该使用C绑定(bind)和nativeLinuxAPI调用、执行命令并解析其输出,还是可能有一些库旨在执行我想执行的操作? 最佳答案 您很可能想使用cgo因为调用任何CAPI真的很容易一个额外的好处是,随着时间的推移,CAPI通常非常稳定,因为库创建者几乎总是选择新函数而不是破坏现有函数的API。运行命令行工具和解析输出很容易出错,因为您调用的软件很可能会超

nginx - Docker nginx 和 Go (Golang) 分离容器。 Nginx 配置

在我的本地主机上,我有带有2个容器的Docker:Nginx和Golang。我想从我的本地机器发出请求并从Go(localhost->Nginx->Go)获得响应。容器工作。我可以进入Nginx容器并运行curl-v'test:8080/path'-d"param1=value1¶m2=value2"我得到了正确的响应。但是如果我尝试从主机运行相同的请求,我会遇到错误-502BadGateway。如果我更改请求并运行curl-v-XPOST'test:8080/path'(没有数据的相同请求)-没关系。我的Nginx配置:server{listen80;server_namet

linux - 如何编译静态链接的go程序(1.3)?

我正在尝试静态编译一个小的go程序(为了玩Rocket)。我在DebianJessie(薄荷版)上运行。我安装了golang-go包。Rocket文档给出了如何为go版本1.4和1.5进行静态编译的示例1.4$CGO_ENABLED=0GOOS=linuxgobuild-ohello-a-installsuffixcgo.1.5:$CGO_ENABLED=0GOOS=linuxgobuild-ohello-a-tagsnetgo-ldflags'-w'.不幸的是,goversion说我正在运行1.3。$goversiongoversiongo1.3.3linux/amd64我尝试了1.

macos - 无法从 docker 容器访问 imageproxy

我正在尝试部署出色的Go图像代理服务器https://github.com/willnorris/imageproxy在MacOSX上通过DockerCloud作为docker容器。我无法让我的浏览器访问容器dockerrun-i-t-p8080:8080willnorris/imageproxy:latest/go/bin/imageproxy-addr0.0.0.0:8080应该在docker-machineip[vmname]公开服务器,在本例中为192.168.56.100我通过以相同方式运行普通Express服务器来验证我的设置。有人知道这项服务的docker化是怎么回事吗?

linux - 在 linux 系统上从 golang 中的 xls 文件中读取值

我正在编写一个程序来读取Go中的xls文件。我正在使用github.com/extrame/xls包。如果它不为空,我想读取每个单元格。(请注意,有些行在所有11列中都有值,但有些行没有。)我的代码是:ifxlFile,err:=Open("Table.xls","utf-8");err==nil{ifsheet1:=xlFile.GetSheet(0);sheet1!=nil{fmt.Print("TotalLines",sheet1.MaxRow,sheet1.Name)col1:=sheet1.Rows[0].Cols[0]col2:=sheet1.Rows[0].Cols[0]

linux - Golang 的 net.LookupHost() 是否使用 "/etc/resolv.conf"中的所有 DNS 服务器?

我有一个应用程序,它是用Go编写的,使用了这个函数,但它总是无法解析DNS名称。我可以使用其他应用程序很好地解析服务器上的DNS名称,但不能使用使用此功能的基于Go的应用程序。 最佳答案 如有疑问,请“使用来源,卢克”。读书dnsclient_unix.go显示它遍历所有已配置的服务器。但请注意://IfanswererroredforrcodesdnsRcodeSuccessordnsRcodeNameError,//itmeanstheresponseinmsgwasnotusefulandtryinganother//serv

ssl - Docker Golang 应用程序的工作目录是什么?

当我在官方DockerHub存储库中提供Golang应用程序时,我想知道应用程序启动的默认工作目录是什么?背景:我必须将本地证书颁发机构和服务器key映射到容器中以提供TLShttps,我想知道将它们映射到应用程序的位置将能够从容器内的应用程序的当前工作目录中获取它们? 最佳答案 如果您使用的是golang:1.X-onbuild镜像,来自DockerHub的将被复制到(https://hub.docker.com/_/golang/)/go/src/app这意味着您运行目录的所有文件和目录dockerbuild命令将被复制到容器中

go - 带 Docker 的静态 Go 二进制文件 - 找不到入口点

我用了StaticGoBinarieswithDockeronOSXNicolaPaolucci尝试使用带Docker的静态Go二进制文件。我相信我正确地遵循了每一步,但是当我运行最终图像时,我从Docker收到以下错误响应。注意我的服务和可执行文件的名称是netverifydocker:Errorresponsefromdaemon:Containercommand'/netverify'notfoundordoesnotexist..我的Dockerfile.static如下所示...#CreateaminimalcontainertorunaGolangstaticbinaryF

Goroutine 在 Windows 和 Linux 上的行为不同

我是GO的新手。我有以下遗留代码。vardb*sql.DBfuncinit(){gofeedChan()connString:=os.Getenv("DB_CONN")varerrerrordb,err=sql.Open("postgres",connString)iferr!=nil{log.Fatalf("Failedtoconnecttodatabaseat%q:%q\n",connString,err)}//confirmconnectioniferr=db.Ping();err!=nil{log.Fatalf("Unabletopingdatabaseat%q:%q\n",c

golang sync.WaitGroup 在 Linux 上没有完成

我有ping功能,它在Windows上运行良好,但在Linux上却不行。在Linux上,它会ping几台主机并停止(不退出)。funcmain(){...wg.Add(len(hosts))for_,ip:=rangehosts{goping(ip,&wg,os)}wg.Wait()...}我可以在Windows上ping数百台主机,但在Linux上不行。看https://github.com/irom77/go-public/blob/master/gping/main.go对于整个事情funcping(ipstring,wg*sync.WaitGroup,osstring){_,e