Home

Shipyard Docker management

Shipyard是一个高效的Docker容器管理工具,下面简单介绍一下利用docker-machine创建swarm集群的步骤 利用Docker machine创建3个Node前提要安装Docker tool box和VirtualBox123docker-machine create --driver virtualbox masterdocker-machine create --driver

Dockerfile命令

CMDCMD命令用于指定一个容器启动时要运行的命令,和RUN指令有点类似。不过RUM命令是指镜像被构建时要运行的指令,而CMD是指容器被启动时要运行的命令。这和docker run命令启动的时候指定的运行命令非常类似,并且docker run命令启动时指定的运行命令会覆盖CMD命令。例如Dockerfile中的如下CMD命令:1CMD ["/bin/bash"] 如果以下面的方

Golang-基于reflect和tag自动填充struct数据

用Go开发Server端提供一些JSON数据格式的API,会定义业务Model,同时标记其json名字。1234type School struct { ID int `json:"id"` Name string `json:"name"`} 通常也会复用这个Model来接收创建或者更新请求的参数。1234567var

MongoDB两阶段提交实现事务

MongoDB数据库中操作单个文档总是原子性的,然而,涉及多个文档的操作,通常被作为一个“事务”,而不是原子性的。因为文档可以是相当复杂并且包含多个嵌套文档,单文档的原子性对许多实际用例提供了支持。尽管单文档操作是原子性的,在某些情况下,需要多文档事务。在这些情况下,使用两阶段提交,提供这些类型的多文档更新支持。因为文档可以表示为Pending数据和状态,可以使用一个两阶段提交确保数据是一致的,在

谷歌两步验证

谷歌验证(Google two-factor Authenticator)通常来讲,身份验证系统都实现了基于时间的一次性密码算法,即著名的TOTP(Time-Based One-Time Password)。该算法由三部分组成: 一个共享密钥(一系列二进制数据)一个基于当前时间的输入一个签名函数 共享秘钥用户需要开启Google Authenticator服务时: 服务器随机生成一个类似于『DP

Go高性能编程技巧

原文: http://studygolang.com/articles/6859 ChannelsChannel在Go语言中受到了很多的关注,因为它是一个方便的并发工具,但是了解它对性能的影响也很重要。在大多数场景下它的性能已经“足够好”了,但是在某些延时敏感的场景中,它可能会成为瓶颈。Channel并不是什么黑魔法。在Channel的底层实现中,使用的还是锁。在没有锁竞争的单线程应用中,它能工作

Docker exec和attach的区别

exec 可以开启多个终端实例, exec -i /bin/bash,由此可见exec其实是在运行中的容器中执行一个命令,比如/bin/bash 来达到交互的目的。 The docker exec command runs a new command in a running container attach 开启一个和正在运行的进程交互的终端,如果该进程结束,原docker contai

如何进入正在执行的 docker container

当一个container起来之后,我们有时候希望能进入container内部去看看,比如查查日志,执行些操作等。目前有几种方式可以实现: 1. docker attach这个是官方提供的一种方法。 测试,首先启动一个container:12$ docker run -i -t ubuntu bashroot@4556f5ad6067:/# 不要退出,打开另一个终端:123456$ docker p

Docker 基本命令

首先,让我们通过下面的命令来检查Docker的安装是否正确:1~$ docker info 如果没有找到这条命令,则表示Docker安装错误。 到这一步Docker里还没有镜像或是容器。所以,让我们通过使用命令预先构建的镜像来创建来一个:1~$ docker pull ubuntu 下一步我们将运行一个“Hello World”的例子,我们暂且叫它“Hello Docker”吧。12~$ dock

存储密码

作为一个Web应用开发者,在选择密码存储方案时, 容易掉入哪些陷阱, 以及如何避免这些陷阱? 普通方案目前用的最多的密码存储方案是将明文密码做单向哈希后存储,单向哈希算法有一个特征:无法通过哈希后的摘要(digest)恢复原始数据,这也是“单向”二字的来源。常用的单向哈希算法包括SHA-256, SHA-1, MD5等。Go语言对这三种加密算法的实现如下所示:1234567891011121314