Go语言中文网 为您找到相关结果 52

golang url解析

package main import "fmt" import "net/url" import "strings" func main() { //我们将解析这个 URL 示例,它包含了一个 scheme,认证信息,主机名,端口,路径,查询参数和片段。 s := "postgres://user:pass@host.com:5432/path?k=v#f" //解析这个 URL 并确保解析没有出错。 u, err := url.Parse(s) if err != nil { panic(err) } //直接访问 scheme。 fmt.Println(u.Scheme) //User 包含了所有的认证信息,这里调用 Username和 Password 来获取独立值。 fmt.Pri...阅读全文

博文 2015-04-20 11:20 benlightning

golang 基于beego web框架写的 web页面自由配置nginx虚拟主机

nginxconf web页面自由配置nginx虚拟主机 该项目基于golang的 beego web框架 主要实现了一下功能 创建新的nginx代理配置文件 并自动调用 nginx reload 命令 暂时没有实现删除配置文件命令 应用场景 nginx需要实现代理访问多个主机,操作人员无需懂得nginx配置只需要在web页面点击下鼠标即可 多个 golang 应用程序在服务器后台运行在非80端口,nginx更具不同的域名代理访问不同的golang应用程序 改造后可以做什么? 增加设置多个nginx配置模板,可以实现负载均衡、自动配置虚拟主机等高级的nginx的功能 nginx配置模板为nginxconf/template/domainlocalconf.tpl 该项目使用帮助 由于我在wi...阅读全文

博文 2015-03-20 19:48 young-轻人

docker - 从安装到部署一个web应用(go、java)

说明: 1.权限是root,不是则先提升权限 一:安装docker 1.https://docs.docker.com/engine/installation/binaries/ 下载docker最新版二进制tar.gz linux下: wget https://get.docker.com/builds/Darwin/x86_64/docker-1.11.0.tgz 2.丢到 $path中 mv docker /usr/local/sbin 3.启动 docker daemon & 二.在容器上运行tomcat docker官方镜像仓库由于有墙,所以下载的很慢。目前我用的是时速云的镜像。 第一步:拉取镜像到本地 docker pull index.tenxcloud.com/tenxclo...阅读全文

博文 2016-05-11 13:39 jinzhencs

世界上最简单的监控服务 pingd

pingd 是世界上最简单的监控服务,使用 golang 编写。软件支持 IPv6,但是服务器不支持。 pingd 允许同时 ping 上千个 IPs,在此期间还可以管理监控的主机。 用户提供主机名或者 IP,还有用户邮箱地址,就可以使用 3 个生成 URLs 来开启,停止或者删除你的追踪。每当你的服务器停机或者后台在线都会发送通知,还包含控制 URLs。

~$# start monitoring your server with a single curl command.
~$curl ping.gg/me@example.org/104.28.13.51
[ ok...阅读全文

理解Docker跨多主机容器网络

在Docker 1.9 出世前,跨多主机的容器通信方案大致有如下三种: 1、端口映射 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上,仅提供四层及以上应用和服务使用。这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信。显然这个方案的应用场景很有局限。 2、将物理网卡桥接到虚拟网桥,使得容器与宿主机配置在同一网段下 在各个宿主机上都建立一个新虚拟网桥设备br0,将各自物理网卡eth0桥接br0上,eth0的IP地址赋给br0;同时修改Docker daemon的DOCKER_OPTS,设置-b=br0(替代docker0),并限制Container IP地址的分配范围为同物理段地址(–fixed-cidr)。重启各个主机的Docker Daemon后,处于与宿主机在同一...阅读全文

博文 二月 15, 2016 bigwhite

Docker源码分析(八):Docker Container网络(下)

1.Docker Client配置容器网络模式 Docker目前支持4种网络模式,分别是bridge、host、container、none,Docker开发者可以根据自己的需求来确定最适合自己应用场景的网络模式。 从Docker Container网络创建流程图中可以看到,创建流程第一个涉及的Docker模块即为Docker Client。当然,这也十分好理解,毕竟Docker Container网络环境的创建需要由用户发起,用户根据自身对容器的需求,选择网络模式,并将其通过Docker Client传递给Docker Daemon。本节,即从Docker Client源码的角度,分析如何配置Docker Container的网络模式,以及Docker Client内部如何处理这些网络模式...阅读全文

博文 2015年2月16日 孙宏亮

go语言 nsq源码解读四 nsqlookupd源码options.go、context.go和wait_group_wrapper.go

上一篇文章:go语言nsq源码解读三 nsqlookupd源码nsqlookupd.go主要读了nsqlookupd.go这个文件,本节会解读nsqlookupd.go文件中涉及到的其中三个文件:options.go、context.go和wait_group_wrapper.go。 options.go 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package nsqlookupd import ( "log" "os" "time" ) type nsqlookupdOptions struct { Verbose bool `flag:...阅读全文

博文 2014年03月23日 baiyuxiong

Docker系列之一:入门介绍

Docker简介: Docker是DotCloud开源的、可以将任何应用包装在Linux container中运行的工具。2013年3月发布首个版本,当前最新版本为1.3。Docker基于Go语言开发,代码托管在Github上,目前超过10000次commit。基于Docker的沙箱环境可以实现轻型隔离,多个容器间不会相互影响;Docker可以自动化打包和部署任何应用,方便地创建一个轻量级私有PaaS云,也可以用于搭建开发测试环境以及部署可扩展的web应用等。 Docker vs VM 从下图可以看出,VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行...阅读全文

golang的GAE环境下的appengine包

package appengine import "code.google.com/p/appengine-go/appengine" appengine包提供Google App Engine的基本函数服务。 更多细节参见:https://developers.google.com/appengine/docs/go/ Index type MultiError func (m MultiError) Error() string func IsCapabilityDisabled(err error) bool func IsTimeoutError(err error) bool func IsOverQuota(err error) bool type GeoPoint func (...阅读全文

博文 2014-09-12 18:47 刘地

小型独立的 HTTP 服务器 devd

devd 是一个小型的、独立的、使用命令行的 HTTP 服务器,一个给开发者的本地 web 服务器。 特性: * **跨平台和自适应**。一个单独的静态编译二进制文件,没有外部依赖,适用于 OSX, Linux 和 Windows * **设计用于终端**。没有配置文件,没有系统守护进程,日志在终端阅读。 * **Livereload。**当 liverload 可用时,devd 插入一个小的脚本到 HTML 页面,在关闭 Head 标签之前。 * **反向代理+静态文件服务器+灵活的路由** * **轻型虚拟主机** * **延迟和带宽模拟** ![screenshot](http://static.oschina.net/uploads/img/201510/231704...阅读全文

golang 远程传输文件

概述 之前有一篇介绍如何使用 golang 通过SSH协议来执行远程命令:golang 执行远程命令 同样,通过SSH协议也可以使用 golang 来远程传输文件。 除了 SSH 的库,为了传输文件,还需要用到 github.com/pkg/sftp 这个库。 实现方式 废话不多说,直接看代码。 由于是基于 SSH 协议实现的远程文件传输,所以先创建 SSH 的连接,再创建传输文件的 sftp 客户端。 func connect(user, password, host string, port int) (*sftp.Client, error) { var ( auth []ssh.AuthMethod addr string clientConfig *ssh.ClientConfig...阅读全文

博文 2016-08-05 15:00 wang_yb

理解Docker容器端口映射

在”理解Docker单机容器网络“一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案,一种是1.7版本之前docker-proxy+iptables DNAT的方式;另一种则是1.7版本(及之后)提供的完全由iptables DNAT实现的端口映射。不过在目前docker 1.9.1中,前一种方式依旧是默认方式。但是从Docker 1.7版本起,Docker提供了一个配置项:–userland-proxy,以让Docker用户决定是否启用docker-proxy,默...阅读全文

Docker源码分析(六):Docker Daemon网络

1. 前言 Docker作为一个开源的轻量级虚拟化容器引擎技术,已然给云计算领域带来了新的发展模式。Docker借助容器技术彻底释放了轻量级虚拟化技术的威力,让容器的伸缩、应用的运行都变得前所未有的方便与高效。同时,Docker借助强大的镜像技术,让应用的分发、部署与管理变得史无前例的便捷。然而,Docker毕竟是一项较为新颖的技术,在Docker的世界中,用户并非一劳永逸,其中最为典型的便是Docker的网络问题。 毋庸置疑,对于Docker管理者和开发者而言,如何有效、高效的管理Docker容器之间的交互以及Docker容器的网络一直是一个巨大的挑战。目前,云计算领域中,绝大多数系统都采取分布式技术来设计并实现。然而,在原生态的Docker世界中,Docker的网络却是不具备跨宿主机能力...阅读全文

博文 2014年12月30日 孙宏亮

Docker源码分析(七):Docker Container网络 (上)

1.前言(什么是Docker Container) 如今,Docker技术大行其道,大家在尝试以及玩转Docker的同时,肯定离不开一个概念,那就是“容器”或者“Docker Container”。那么我们首先从实现的角度来看看“容器”或者“Docker Container”到底为何物。 逐渐熟悉Docker之后,大家肯定会深深得感受到:应用程序在Docker Container内部的部署与运行非常便捷,只要有Dockerfile,应用一键式的部署运行绝对不是天方夜谭; Docker Container内运行的应用程序可以受到资源的控制与隔离,大大满足云计算时代应用的要求。毋庸置疑,Docker的这些特性,传统模式下应用是完全不具备的。然而,这些令人眼前一亮的特性背后,到底是谁在“作祟”,到...阅读全文

博文 2015年1月24日 孙宏亮

企业级容器安全最佳实践

由于容器虚拟化技术可以充分利用硬件资源,对于开发团队就像梦想照进了现实。尽管容器化没有推翻虚拟机在企业应用开发和部署上的地位,但是Docker等工具在实现开发、测试和部署大规模现代软件的速度和敏捷性方面大展身手。Docker容器具有诸多优点:无需复杂的hypervisor、可移植性、资源隔离性、轻量级、开放标准、完美适应微服务架构。众多的应用通过容器隔离起来,相互独立地运行在同一台宿主机上,哪家公司不喜欢呢? 容器的速度和易用性带来了无限的可能,开发团队很容易被吸引。迄今为止,Docker容器的下载量已经超过4个亿。但是,对于容器化的担忧真真切切地存在。如果你被一时的热情冲昏了头脑,反而会适得其反,无法利用容器的潜力,阻碍开发的快速迭代和创新。如果你的公司决定要安全地拥抱docker,...阅读全文

DevOps与微服务 ▎时速云Docker&Kubernetes技术沙龙第四期

![alt 文本]( https://dn-tenxcloud.qbox.me/baec1465c205a4f8573253f78ae997c8.jpg) 时速云是国内领先的容器云平台与解决方案提供商,自成立之日起,就根植于技术社区,致力于推动以Docker为代表的容器技术在国内的发展。迄今为止我们已在北京成功举办三期Docker&Kubernetes技术沙龙,得到了技术小伙伴的大力支持。 时速云诚邀您参加Devops与微服务|Docker&Kubernetes技术沙龙第四期(6月25日于北京),与现场的技术大咖们一起分享Docker技术的那些事儿。 ## 活动日程: **日期:**2016年6月25日(周六) **时间:**下午13:30-17:00 *...阅读全文

理解Docker单机容器网络

Docker容器是近两年最 火的IT技术之一,用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本质在于提升计算密度和提升部署效率,高屋 建瓴的讲,它的出现符合人类社会对绿色发展的追求,降低资源消耗,提升资源的单位利用率。不过经历了两年多的发展,Docker依旧年轻,尚未成 熟,在集群调度、存储、网络、安全等方面,Docker依旧有很长的路要走。 在一年多以前,也就是Docker发布1.0后没几个月时,我曾经学习过一段时间的Docker,主要学习Docker的概念和基本使用方法。由于当时docker 还相对“稚嫩”,在产品和项目中暂无用武之地,也就...阅读全文

【干货PPT分享】时速云Docker&Kubernetes技术沙龙【上海站&杭州站】

7月30日~7月31日,时速云走进上海和杭州,继前四期时速云Docker&Kubernetes技术沙龙顺利举办以来,受到了越来越多创业者、开发者,以及大型云计算厂商的青睐,报名的小伙伴热情高涨,炎炎夏日不畏酷暑准时来参加沙龙活动。沙龙的干货演讲也受到了大家的一致好评。以下是现场速记内容整理。([PPT链接](https://yunpan.cn/c6STMz4yBAskB "PPT链接"))提取码:943d ## 上海站 **1.《生产级Kubernetes发展历程及最新特性》——时速云 王磊** 本次王磊的分享主要和大家一起回顾Kubernetes的主要发展历程,包括主要特性的引入、相关工具的出现,以及Kubernetes最新功能的介绍,也会在其中分享我们的一些实践经验,帮...阅读全文

7月30日、31日|时速云Docker&Kubernetes技术沙龙【上海站&杭州站】

![alt 文本]( https://dn-tenxcloud.qbox.me/877b7557ab6aeb9d07c04b0ee5d36e94.jpg) 时速云是国内领先的容器云平台与解决方案提供商,自成立之日起,就根植于技术社区,致力于推动以Docker为代表的容器技术在国内的发展。迄今为止我们已在北京成功举办四期Docker&Kubernetes技术沙龙,得到了技术小伙伴的大力支持。 时速云诚邀您参加Docker&Kubernetes技术沙龙第五期(7月30日于上海),第六期(7月31日于杭州),与现场的技术大咖们一起分享Docker技术的那些事儿。 ## 活动安排: ### 1.上海站 **日期:** 2016年7月30日(周六) **时间:*...阅读全文

容器化的MySQL性能如何?

说到部署,Docker将便携性和易用性拉高到一个新水准。MySQL相关的Dockerfile和脚本已经发布很长时间,在开发社区的使用率也稳步增长。这一点也在意料之中。 在影响到MySQL性能的每个环节上,用户的典型担忧在于:容器化以后,在这些环节上是否存在显著的性能开销。为此,我们进行了充分的性能测试,下面我会对测试结果的某些细节进行探讨。 我们的关注点主要在MySQL实例的IO和网络性能,尤其是对比采用了不同存储选项的实例,以及docker bridge网络模式带来了多少性能开销。***测试的运行环境是:Oracle Server x5-2,处理器为2x Xeon E5-2660 v3(40硬件线程),256G内存,操作系统Ubuntu 16.04,Docker版本v1.11....阅读全文

golang 远程传输文件

概述之前有一篇介绍如何使用 golang 通过SSH协议来执行远程命令:golang 执行远程命令 同样,通过SSH协议也可以使用 golang 来远程传输文件。除了 SSH 的库,为了传输文件,还需要用到 github.com/pkg/sftp 这个库。实现方式废话不多说,直接看代码。 由于是基于 SSH 协议实现的远程文件传输,所以先创建 SSH 的连接,再创建传输文件的 sftp 客户端。func connect(user, password, host string, port int) (*sftp.Client, error) { var ( auth []ssh.AuthMethod addr string clientConfig *ssh.ClientConfig sshC...阅读全文

博文 2016-10-20 14:37 u012798391

【时速云线上分享】 第九期:镜像构建优化之路

为促进 Docker 、 Kubernetes 等技术的交流传播,同时帮助用户更全面地了解时速云产品及其应用,时速云每两周会进行一次技术分享,分享时间为**周四晚 8:30-9:30**在用户微信群、时速云技术分享群等进行产品、容器技术相关的技术直播分享和现场答疑。以下整理自**5 月 26 日第九期技术分享内容**,由 时速云工程师 赵帅龙 分享。 本次分享的 PPT 内容如下([PPT 下载][1]) ![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2016/05/%E5%B9%BB%E7%81%AF%E7%89%872.jpg) ![alt 文本](http://blog.tenxcloud.com/wp-co...阅读全文

云主机与虚拟主机的区别是什么

普通虚拟主机:虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器,每个空间都给予相应的FTP权限和Web访问权限,以用于网站发布。 云虚拟主机:是普通虚拟主机的升级版。在云服务器基础上,使用云计算技术,更稳定、安全,可用性更强的虚拟主机。 虚拟主机的特点 1、 价格便宜。虚拟主机是标准的资源共享,性能虽然比不上VPS和服务器,但胜在价格,适合前期建设的网站。 2、 操作简便。虚拟主机的控制面板上有明确的在线解压、绑定域名、301重定向等设置,比较适合新手操作。 3、升级方便。如果在耐思尼克购买虚拟主机,主机升级只要用户在线提交申请,不用对网站进行更改,网站依然能正常运行,不够空间也不用担心。 云虚拟主机的特点 1、 通过...阅读全文

DevOps与微服务 ▎时速云Docker & Kubernetes技术沙龙第四期干货分享

继前三期时速云Docker&Kubernetes技术沙龙顺利举办以来,受到了越来越多创业者、开发者,以及大型云计算厂商的青睐,6月25日,时速云作为主办与各协办单位在海智创投大厦DEMO SPACE迎来了第四期技术之约,以下是现场速记内容整理。 ![沙龙总结11](http://blog.tenxcloud.com/wp-content/uploads/2016/06/%E6%B2%99%E9%BE%99%E6%80%BB%E7%BB%9311.jpg) [PPT链接][1] [点击上方链接查看本次沙龙分享完整PPT内容] ## 1.容器隔离技术分析——谢朋 **分享嘉宾:** 谢朋,时速云研发副总裁,曾就职于赛门铁克近十年,负责领导研发Symantec安全产...阅读全文

golang 的url模块示例

package main import "fmt" import "net/url" import "strings" func main() { //我们将解析这个 URL 示例,它包含了一个 scheme,认证信息,主机名,端口,路径,查询参数和片段。 s := "postgres://user:pass@host.com:5432/path?k=v#f" //解析这个 URL 并确保解析没有出错。 u, err := url.Parse(s) if err != nil { panic(err) } //直接访问 scheme。 fmt.Println(u.Scheme) //User 包含了所有的认证信息,这里调用 Username和 Password 来获取独立值。 fmt.Pri...阅读全文

博文 2017-01-15 23:00:11 面码

深度剖析容器之“状态”

![](http://blog.tenxcloud.com/wp-content/uploads/2016/08/%E5%AE%B9%E5%99%A8%E7%8A%B6%E6%80%81.png) 有状态应用程序可以被容器化吗?或者容器只适合无状态的应用程序吗?本文带你一见分晓。 Docker Engine 等容器技术为应用提供了标准打包和运行时环境。 容器能快速部署,并有效地利用系统资源。开发人员使用容器技术,换取的是应用程序的可移植性和可编程的镜像管理。运维团队使用容器,可以以标准化的方式部署和管理运行时单元。 除了这些已知的优点,我们对容器都有一个普遍的误解:容器是短暂的,所以只能运行无状态的微服务应用,而不能运行有状态的服务。下面我们看看这个观点是否成立。 ...阅读全文

架构师初码邀你—浅聊上云思路

# 架构师初码邀你—浅聊上云思路 *话题发布专家:初码——资深程序员,初级架构师,知名博主* >在实践中,无论是个人站长还是中小企业,选择云服务,都会遇到如何上云的问题,这个问题的详细描述就是,应该选择怎样一种迁移和部署到云服务上的方式并且应该使用哪些云服务?今天我们抛开具体的技术和语言不谈,就可能出现的架构方式简单的聊一聊,以我个人的经验来看,有较多的遇到过如下3种上云场景 * 一、傻瓜型: 在云服务时代前,但凡提到建站,多数所指即使用虚拟主机搭建一个内容管理网站或者论坛社区网站,操作者只需要知晓简单的虚拟主机控制面板以及具体的应用软件的使用方式即可完成日常维护,而此种方式上云也较为简单,可在云服务商的云市场中,选购合适的运行环境购买并按照提示进行一键购买和配置,而服务商提...阅读全文

百度云主机的优势

在百度上搜索云主机,出现了大量的品牌名称,可谓百花齐放。但对不太懂服务器、建站的小白来说,要在茫茫的云主机海洋中选出一款适合自己的,实在是太困难了。在选择之前,大家不妨先做点功课,了解一下云主机的相关知识。 首先,什么是云主机呢?云主机又叫云虚拟主机,是在一个云服务器上划分出来的100M、200M等不同型号的小型空间,每个用户都有一个独立的IP,用来安放你做好的网站供用户访问,云主机比普通虚拟主机更稳定。 度娘上有包括阿里云、腾讯云、360云、百度云在内的数十种xx云主机,如果是完全没有经验的人进行选购,估计真的要选择困难了,因为这几个品牌,除开“云”字,看上去都挺靠谱的,质量自然不用担心了,效果怎么样呢? 众所周知,百度是目前中国使用率最高的搜索引擎,我们所做的一切关于...阅读全文

做网站用什么主机好

相信接触过建站的小伙伴都知道,做一个网站需要域名、空间和建站程序。域名通常就.com/.cn/.net这些主流域名,建站程序有自主开发的程序和自助建站工具,空间呢?空间又叫主机,大家最懵的也是主机。 选购主机,要考虑的因素无非就是价格、空间大小、行业匹配度、安全性(稳定性)和售后服务。主机的价格从一两百到上万元不等,价格最重要的决定因素是主机的空间大小。 怎么知道自己应该用多大的空间呢? 主机是用来安放你的网站供用户访问的,针对企业主要分为M型和G型。这里的M、G我们说的一张图片占多少空间的单位,1G=1024M。如果你不知道自己的网站做好后占据多大空间,可以先选择小空间的虚拟主机。耐思尼克的虚拟主机有多规格空间供大家选择,即使购买后发现空间不够用,也可以随时进行升级,...阅读全文

国内主机与海外主机的区别是什么

站长建站的时候都遇到过主机选择困难的问题,一个是听上去高大上的国外主机,一个是纷繁多样的国内主机,到底怎么选择?其实,只要了解了它们的区别,选择就容易多了。下面给大家整理了国内和国外主机的六大差别,供大家选购参考。 1、备案:国内主机必须备案,国外主机不需要。 国外主机可以说是懒人福音,但如果为了省略这点手续就选择国外主机,并不值哦。因为现在国内一些主机商会包办备案服务,大家准备资料就可以了。 2、访问速度:国内主机国内访问快,国外主机国外访问快。 如果你的网站主要针对国内用户,选择国内主机才是最合适的,因为国外的服务器在国内的响应速度比较慢,因为网站打不开而丧失客户,实在有点冤。如果是专门做外贸的,建议根据外贸地域选择主机。 3、空间大小:如果说国内主机的空间是香辣鸡...阅读全文

通过不到100行Go代码打造你自己的容器

Docker在2013年三月实现了开源发布,它的出现让软件开发行业对于现代化应用的打包以及部署方式发生了巨大的变化。紧随着Docker的发布,各种具有竞争性、致敬性以及支持性的容器技术纷纷涌现,为这一领域带来了极大的关注度,同时也引起了人们的反思。这一系列文章将解答读者的各种困惑,对如何在企业中实际使用容器进行分析。 这一系列文章首先将对容器背后的核心技术进行观察,了解开发者目前如何使用容器,随后将分析在企业中部署容器的核心挑战,例如如何将容器技术与持续集成和持续交付管道进行集成,并对监控方式进行改进,以支持不断变化的负载,以及使用短期容器的潜在需求。本系列文章的总结部分将对容器技术的未来进行分析,并探讨无核化技术(unikernels)目前在处于技术前沿的组织中所扮演的角色。 本文是本系列...阅读全文

博文 2016-06-22 00:06 justdoithai

Docker 重要更新: 原生支持多阶段构建(multi-stage build)

Docker 的口号是 Build, Ship, and Run Any App, Anywhere.但是我们在应用过程中会遇到一个问题,我们在 build 的时候,把源码也 build 进去了。然后就继续把源码 Ship 出去吗?这可不行。所有的编译型语言都面临这个困扰。即使是脚本型语言,build 的时候也会使用很多上线时用不到的构建工具,而我们希望减小生产镜像的体积,这样我们的小鲸鱼才能多拉一点集装箱嘛。 传统做法 我们最终的目的是要将编译好的可执行文件复制到 alpine 这样的迷你镜像里,那么该怎么弄到编译好的文件呢?基于 Docker 的思想,我们肯定需要在一个标准容器中编译,这样这个过程才是标准化的,再说,你在 Ubuntu 编译出一个二进制文件在 alpine 也运行不了。 ...阅读全文

博文 2017-04-14 18:01:34 Muninn

如何在长城后面go get一些库

国内的Go开发已然蔚然成风,但是Go开发者比较痛苦的是,golang.org网站以及其它的一些相关的开发网站被GFW屏蔽了。下载Go开发包海容易些,国内有一些镜像站点,或者通过一些代理也能访问,但是下载一些开发库的时候,这些库可能直接或者间接引用了 `golang.org/x/...`等依赖库, 通过go get命令确没有办法下载下来。 我原先在Comcast,这是一家外企,在国内有vpn可以直接访问这些网站,所以以前没有觉得go get是一个问题,看到大家被GFW弄的焦头烂额的时候也没觉得是一件大事情,现在换到国内的互联网企业,切切实实的感觉到GFW的威力。首先是google.com, golang.org等网站被屏蔽掉了,其次 go get 一些库如golangorg/x/net失败。 ...阅读全文

博文 2017年01月26日 smallnest

通过不到100行Go代码打造你自己的容器

Docker在2013年三月实现了开源发布,它的出现让软件开发行业对于现代化应用的打包以及部署方式发生了巨大的变化。紧随着Docker的发布,各种具有竞争性、致敬性以及支持性的容器技术纷纷涌现,为这一领域带来了极大的关注度,同时也引起了人们的反思。这一系列文章将解答读者的各种困惑,对如何在企业中实际使用容器进行分析。 这一系列文章首先将对容器背后的核心技术进行观察,了解开发者目前如何使用容器,随后将分析在企业中部署容器的核心挑战,例如如何将容器技术与持续集成和持续交付管道进行集成,并对监控方式进行改进,以支持不断变化的负载,以及使用短期容器的潜在需求。本系列文章的总结部分将对容器技术的未来进行分析,并探讨无核化技术(unikernels)目前在处于技术前沿的组织中所扮演的角色。 本文是本系列...阅读全文

博文 2016-06-22 00:06 justdoithai

RemoteTail-集群日志同步查看小工具

RemoteTail 是一款支持同步显示多台远程服务器的日志文件内容更新的工具,使用它可以让你同时监控多台服务器中某个(某些)日志文件的变更,将多台服务器的tail -f xxx.log命令的输出合并展示。 使用场景 假设公司有两台web服务器A和B,由于初期没有专业运维进行配置集中式的日志服务系统,两台服务器上分别部署了两套相同的代码提供web服务,使用nginx作为负载均衡,请求根据设定的策略转发的这两台web服务器上。 AB两台服务器中的项目均将日志写到文件系统的/home/data/logs/laravel.log文件。这种情况下如果我们需要查看web日志是否正常,一般情况下就需要分别登陆两台服务器,然后分别执行tail -f /home/data/logs/laravel.log查...阅读全文

博文 2016年09月24日发布 mylxsw

Docker命令详解

序 在上一篇基于Docker进行Golang开发文章中对Docker进行了安装,并对如何用Docker进行Golang开发进行了描述,本文再对Docker命令进行讲解。 查看Docker命令 ➜ tonny@tonny-pc ~ docker -h Usage: docker [OPTIONS] COMMAND [arg...] docker [ --help | -v | --version ] A self-sufficient runtime for containers. Options: --config=~/.docker Location of client config files -D, --debug Enable debug mode -H, --host=[] Dae...阅读全文

博文 2016.08.17 14:21 技术学习

用于写 TCP 代理tcpproxy

包 tcpproxy 允许用户构建 TCP 代理,可选地根据 HTTP/1 主机头和 TLS 连接中的 SNI 主机名进行路由决策。 使用示例 ``` var p tcpproxy.Proxy p.AddHTTPHostRoute(":80", "foo.com", tcpproxy.To("10.0.0.1:8081")) p.AddHTTPHostRoute(":80", "bar.com", tcpproxy.To("10.0.0.2:8082")) p.AddRoute(":80", tcpproxy.To("10.0.0.1:8081")) // fallback p.AddSNIRoute(":443", "foo.com", tcpproxy.To("10.0...阅读全文

url解析

Golang URL解析今天利用课余时间看了一下Go语言的URL解析,于是就实践了一下,为了大家一起学习交流,故贴出来和大家一起分享,如有什么错误,请各位大神批评指出,共同进步。本人邮箱:1975210542@qq.compackage main import ( "fmt" "net/url" "strings" ) func main() { Url := "https://root:123456@www.baidu.com:0000/login?name=xiaoming&name=xiaoqing&age=24&age1=23#fffffff" //Parse函数解析Url为一个URL结构体,Url可以是绝对地址,也可以是相对地址 // type URL struct { // Sc...阅读全文

博文 2017-06-16 17:55:42 131360144

关于Go tools的比较有用的flags

关于Go tools的比较有用的flags 你刚接触Go tools吗?或者你想扩展下你的知识面?这篇文章是关于Go tools的flags,这些flags每个人都应该知道。 免责声明:这篇文件可能有一些偏见。这是我个人常用的flags集合。我周边的人很难找到这些falgs的参考文档。如果你有更好的主意,可以在Twitter上私信我。 $ go build -x -x列出了go build触发的所有命令。 如果你对Go的工具链、使用跨平台编译器比较好奇,或者对传入外部编译器的flags不清楚,或者怀疑链接器有bug,那么使用-x来查看所有的触发。 $ go build -x WORK=/var/folders/00/1b8h8000h01000cxqpysvccm005d21/T/go-bu...阅读全文

DockOne技术分享(二十九): 蘑菇街基于Docker的私有云实践

【编者的话】本次主要想分享一下过去一年时间里,我们在建设基于Docker的私有云实践过程中,曾经遇到过的问题,如何解决的经验,还有我们的体会和思考,与大家共勉。 郭嘉是@Container容器技术大会讲师,想一睹大师风采的同学欢迎报名参加大会,现场交流。 @Container大会是专为一线开发者和运维工程师设计的顶级容器技术会议,会议强调实践和交流,话题设置围绕容器、运维、云计算等技术领域,力求全方位、多角度为参会者解读容器技术。 很高兴今天能在这里分享一下蘑菇街在生产环境中使用Docker的一些经历和经验。蘑菇街的私有云项目是2014年圣诞节期间上线的,从无到有,经过了半年多的发展,经历了3次大促,已经逐渐形成了一定的规模。 架构集群管理大家知道,Docker自身的集群管理能力在当时条件下...阅读全文

DockOne微信分享( 九十三)魅族云Docker实践

【编者的话】介绍魅族云的场景需求,如何引入Docker,在网络、存储、镜像技术的选择,如何落地的等等。主要内容: 魅族云业务场景魅族云Docker化设计理念网络、存储、镜像技术的选择Docker化落地情况 1、魅族云业务场景魅族云的需求场景可以分为以下几大块: 镜像需求:应用想上Docker就需要镜像,我们跟业务运维一起定好镜像的Dockerfile,push到镜像仓库,这个私有仓库存储了公司内部使用的所有镜像。然后我们会在承载Docker的宿主机预热这些镜像,加快速度;机器申请:我们有使用KVM的历史包袱的,所以在机器申请的时候就会走不同的通道,有KVM的和Docker的;业务发布:这是应用用得最多的场景,上了Docker就涉及到一个问题,如何屏蔽掉KVM和Docker机器的区别,我们有一...阅读全文

DockOne技术分享(五):Docker网络详解及Libnetwork前瞻

【编者的话】本文主要介绍了Docker网络的基础。紧接着讨论了网络配置工具pipework的使用,以及跨主机通信的几种方法。最后介绍了Docker的网络新项目Libnetwork。 网络基础Docker现有的网络模型主要是通过使用Network namespace、Linux Bridge、Iptables、veth pair等技术实现的。 Network namespace:Network namespace主要提供了关于网络资源的隔离,包括网络设备、IPv4和IPv6协议栈、IP路由表、防火墙、/proc/net目录、/sys/class/net目录、端口(socket)等。Linux Bridge:功能相当于物理交换机,为连在其上的设备(容器)转发数据帧。如docker0网桥。Ipta...阅读全文

DockOne技术分享(四十一):思源基于Docker和OpenStack的私有云平台实践

【编者的话】本次分享从以下三方面进行:使用Docker对OpenStack平台压力测试实践、使用Docker加速Sahara-Hadoop、Docker在 Nova项目的使用和实践。 无Docker不OpenStack,当前讨论OpenStack总是离不开Docker。这里我先嚼一下剩饭,下面是OpenStack上Docker技术分布的老图。 我们包括生产化/测试/调研阶段的Docker化项目包括了:Heat、Magnum、Sahara、Nova、以及OpenStack平台本身的自动打包和平台稳定性测试方面。 1. Docker OpenStack平台稳定性测试OpenStack平台本身是一个SOA的项目,具体服务的参数设置需要依据集群规模,服务搭建架构等进行相关测试和调优。Fake是Ope...阅读全文

DockOne技术分享(四十三):基于OVS的Docker多主机互联设计和实践

【编者的话】多主机的网络直连需求源于ACS的金融云业务场景。 在此场景下,Docker容器运行在阿里云的ECS VM之中, Docker传统的网络解决方案采用NAT的方式实现容器间互联,不同宿主机的容器之间无法感知到真实ip地址,因此无法满足如配置中心这样的架构。而ECS又不支持给VM独立增加IP,从而迫使我们在短期内只能一个VM跑一个Docker的方案,势必会造成资源的浪费。OVS的直连方案隔离了宿主机和Docker容器的网络平面,提供了VM运行多Docker容器的能力,结合上ACS的容器编排能力,能大大提高资源的利用率,降低成本。 1. Docker主机网络互联的概述如果要实现多主机的容器网络通信,Docker,原生的网络模型可以采用Port Mapping的方式,本质上是对两个有互访需...阅读全文

DockOne微信分享(七十):浅谈Docker安全合规建设

【编者的话】通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker安全性不足,对Docker导入生产环境持保守态度。不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以成为一种不低于使用虚拟机或者裸机的安全、高效生产系统。 今天和大家聊聊Docker的安全合规建设。 安全,这里我们指的是信息安全,包括数据安全和网络安全,主要是数据在处理、传输、存储等过程中的安全,它包括了信息本身的安全和防护安全。 在安全方面,各行各业甚至国家、国际机构都有很严格的标准: 归功于消费领域企业的不懈广告下, 大家应该都听过ISO9000(质量管理体系)SO14000(环境管理体系),在安全方面,国际标准化组织也有信息安全标准ISO27000,其中ISO 27001在其中具有...阅读全文

DockOne微信分享(八十五):Docker存储方式选型建议

【编者的话】Docker存储方式提供管理分层镜像和容器的可读写层的具体实现。最初Docker仅能在支持AUFS文件系统的Ubuntu 发行版上运行,但是由于AUFS未能加入Linux内核,为了寻求兼容性、扩展性,Docker在内部通过GraphDriver机制这种可扩展的 方式来实现对不同文件系统的支持。本次分享通过一次客户实施案例深入的看看Docker的几种存储方式,并给出一些技术选型的建议。 Docker存储方式: AUFS的介绍及分析Device mapper的介绍及分析OverlayFS的介绍及分析Btrfs的介绍及分析ZFS的介绍及分析 第一部分 问题诊断事情从一次实施项目说起,我们需要帮助客户将他们的应用容器化并在数人云平台上发布此应用。客户的应用是传统WAS应用。应用是通过WA...阅读全文

博文 2016-09-30 Dataman数人科技

DockOne技术分享(十一):DockerCon 见闻

【编者的话】本次主要分享DockerCon上的见闻,分享所有内容大致可以分为三个部分:1. Docker 1.7.0深度解析;2.DockerCon Hackathon见闻;3. DockerCon盛典。 第一环节:Docker 1.7.0深度解析从Docker的版本变更日志来看,Docker 1.7.0在四个方面会有或多或少的变动,分别是:Docker运行时(Runtime),Docker的代码变化,Docker的builder模块,以及Docker的bug修复。 此次分享主要涉及Docker 1.7.0的runtime。 1.1.增添了一个仍然处于试验阶段的特性:支持out of process的数据卷插件 何为试验性质的特性,换言之Docker的这部分特性还不支持在生产环境中采用,这些...阅读全文

DockOne技术分享(四十六):一个关于不可变基础设施的实践案例

不可变基础设施(Immutable Infrastructure)是由Chad Fowler于2013年提出的一个很有的预见性的构想 ,其核心思想为任何基础设施的实例一旦创建之后变成为只读状态,如需要修改和升级,则使用新的实例进行替换。 这种模式可以为我们减少配置管理的负担,并使得 DevOps 更加容易实践,基于 Packer、Terraform及Docker, 我们正在实践和完善这种构想,现在给大家分享。 当前的不可变基础设施实践的主要内容有: 生产与开发环境的一致性系统利用 Terraform 构建基础设施 生产与开发环境的一致性系统我们平时的开发和测试乃至部署中,最常出现的问题之一就是由于系统环境的不一致导致bug或者运行失败, 这在长时间运行的服务器进行缓慢升级时最为常见,而老旧的...阅读全文

DockOne微信分享(六十五):公有云上的容器实践分享

【编者的话】本次分享介绍普元基于微服务架构,在公有云上的一次容器实践,包括如何选型,做了哪些技术验证,遇到了哪些问题,如何解决的。分享中还包括对于云平台本身高可靠、高性能、持续发布、服务注册发现等方面的设计方案,以及后续的发展愿景及规划,旨在与大家探讨一些关于Docker、Kubernetes、CoreOS、Hystrix等具体技术的实践经验,同时希望大家能给我们的平台设计提供更好的建议。 大家好,我是普元软件的顾伟,很高兴有机会与各位分享我们在云上的容器实践。 因为我们是从DevOps开始做起的,所以分享里会有DevOps的一些影子,大家自动过滤就好,不是今天的重点。 主要分了四个部分和大家讨论: 首先我们最终选择了阿里云,为什么是阿里云; 接着是今天的核心部分,包括我们使用了什么技术,做...阅读全文

DockOne微信分享(七十五):应用容器化之Kubernetes实践

【编者的话】本次分享主要以ZooKeeper、Redis、Kafka、MongoDB等应用容器化在Kubernetes平台上面实践。从计算、网络、存储方面解析应用在集成中的问题,以及部分传统应用在容器化过程中设计的应用二次开发等问题。首先介绍应用Docker化的需求和局限、接着介绍基础平台,整体环境包括Kubernetes和ECP,然后介绍具体应用如ZooKeeper在集成中的实践,最后介绍部分开源应用在容器化过程中设计到的二次开发。 容器是一种轻量级的虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优点,越来越多的应用跑在容器里面。但也有其缺陷,并不是所有场景都适合如高性能计算,已经满负荷运行的应用没有必要虚拟化,一些对IO等运行环境要求比较高应用不适合容器化如Oracle数...阅读全文