戊辰人博客

关注互联网动态,分享IT技术知识

人永远不知道,谁哪次不经意的跟你说了再见之后,就真的不会再见了。

戊辰人博客

欢迎来到戊辰人博客

人永远不知道,谁哪次不经意的跟你说了再见之后,就真的不会再见了。

Docker实战(六)搭建自己的Docker Registry

日期:2016年5月4日 作者: 分类:Docker 阅读:805

Docker Registry 是一个用来管理Docker镜像的服务,本身也是一个Docker容器。大部分情况下都可以使用Docker Hub,私有的Docker Registry使用场景主要在当需要对容器镜像存储进行完全控制或需要把镜像管理进行集成的情况。

一、Docker Registry 部署

由于 Docker Registry 已经被制作成一个Docker镜像,所以安装部署非常简单,只需要按照我们通常的docker run就可以,如果本地没有 registry 的镜像,则会自动从 Docker Hub 上获取。

需要注意的是 Registry 默认的对外服务端口是 5000,如果我们宿主机上运行的 Registry 需要对外提供服务,可以通过映射端口的方式提供。

本节实验中我们使用 registry:2 镜像,这个镜像为2.0版本的Registry。

部署 Docker Registry的命令:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

停止和删除 Registry 只需要用容器管理中学到的 docker stopdocker rm命令。

阅读全文…

Docker实战(五)编写Dockerfile

日期:2016年5月3日 作者: 分类:Docker 阅读:267

目标:编写Dockerfile搭建LAMP环境,并能通过ssh连接到容器。

一、创建Dockerfile文件

首先,需要创建一个目录来存放 Dockerfile 文件,目录名称可以任意,在目录里创建Dockerfile文件:

编写Dockerfile

二、Dockerfile 基本框架

Dockerfile一般包含下面几个部分:

  1. 基础镜像:以哪个镜像作为基础进行制作,用法是FROM 基础镜像名称
  2. 维护者信息:需要写下该Dockerfile编写人的姓名或邮箱,用法是MANITAINER 名字/邮箱
  3. 镜像操作命令:对基础镜像要进行的改造命令,比如安装新的软件,进行哪些特殊配置等,常见的是RUN 命令
  4. 容器启动命令:当基于该镜像的容器启动时需要执行哪些命令,常见的是CMD 命令ENTRYPOINT

在本节实验中,我们依次先把这四项信息填入文档。Dockerfile中的#标志后面为注释,可以不用写。

打开Dockerfile,依次输入下面的基本框架内容:

阅读全文…

Docker实战(四)网络管理

日期:2016年4月29日 作者: 分类:Docker 阅读:132

一、Docker网络基本配置

1)默认配置

Docker服务启动时会自动创建一个 docker0 的虚拟网桥,后续新创建的容器都会有个虚拟接口连接到这个网桥:

Docker网络管理

Docker网桥会设置为NAT模式,自动分配一个网段,本机环境中docker0的地址是172.17.0.1,每个容器都会自动分配的到一个IP地址。

可以通过docker inspect redis查看名为redis容器的网络配置信息。

我们可以为 Docker 服务指定不同的网桥以及网段,这些配置都可以写在 /etc/default/docker 文件中,作为服务启动的参数。

2)配置文件 /etc/default/docker

该文件为LMDE2 操作系统中 Docker 服务启动时使用的配置文件,不同的操作系统位置会有不同。这个文件本身是个 Shell 脚本。

首先查看文件内容:

阅读全文…

Docker实战(三)镜像管理

日期:2016年4月28日 作者: 分类:Docker 阅读:204

简单的说镜像就是一个容器的只读模板,用来创建容器。当运行容器时需要指定镜像,如果本地没有该镜像,则会从Docker Registry下载。默认查找的是Docker Hub。Docker的镜像是增量的修改,每次创建新的镜像都会在老的镜像上面构建一个增量的层,使用到的技术是Another Union File System(AUFS)。

一、使用 Docker Hub

镜像存储中的核心概念仓库(Repository)是镜像存储的位置。Docker 注册服务器(Registry)是仓库存储的位置。每个仓库包含不同的镜像。

比如一个镜像名称 ubuntu:14.04,冒号前面的ubuntu是仓库名,后面的14.04是TAG,不同的TAG可以对应相同的镜像,TAG通常设置为镜像的版本号。

Docker Hub 是Docker官方提供公共仓库,提供大量的常用镜像,由于众所周之的原因经常连接Docker Hub会比较慢,所以我们也可以选择一些国内提供类似Docker Hub镜像服务站点。连接Docker Hub的常用命令包括:

# 搜索镜像
docker search ...

# 下载镜像
docker pull ...

阅读全文…

Docker实战(二)数据卷管理

日期:2016年4月27日 作者: 分类:Docker 阅读:165

Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。

数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount 挂载一个文件系统。

一、数据卷创建

容器管理实验中我们学习的命令 docker run 用来创建容器,可以在使用改命令时添加 -v 参数,就可以创建并挂载一个到多个数据卷到当前运行的容器中,-v的作用是将宿主机的一个目录作为容器的数据卷挂载到容器中,使宿主机和容器之间可以共享一个目录,如果本地路径不存在,Docker也会自动创建。

# 创建两个目录
mkdir /tmp/data1 /tmp/data2 

# 分别将两个目录挂载到新创建的容器上
docker run -t -i --name docker2 -v /tmp/data1:/data1 -v /tmp/data2:/data2 ubuntu /bin/bash
Docker数据卷管理

上述命令中 -v 参数可以使用多次,并挂在多个数据卷到容器中。后面的参数信息中冒号前面是宿主机的本地目录,冒号后面是容器中的挂载目录。

阅读全文…

Docker实战(一)容器管理

日期:2016年4月26日 作者: 分类:Docker 阅读:144

Linux容器技术很早就有了,比较有名的是被集成到主流Linux内核中的LXC项目。容器通过对操作系统的资源访问进行限制,构建成独立的资源池,让应用运行在一个相对隔离的空间里,同时容器间也可以进行通信。

容器技术对比虚拟化技术,容器比虚拟化更轻量级,对资源的消耗小很多。容器操作也更快捷,启动和停止都要比虚拟机快。但Docker容器需要与主机共享操作系统内核,不能像虚拟机那样运行独立的内核。

Docker是一个基于LXC技术构建的容器引擎,基于GO语言开发,遵循Apache2.0协议开源。Docker的发展得益于为使用者提供了更好的容器操作接口。包括一系列的容器,镜像,网络等管理工具,可以让用户简单的创建和使用容器。

Docker支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就是 Build once, Run anywhere。

Docker容器技术的典型应用场景是开发运维上提供持续集成和持续部署的服务。

一、Docker安装

Docker的安装教程非常多,此处就不写了,各种系统下安装教程可以点击查看官方安装文档

二、创建第一个容器

如果我们需要一个保持运行的容器呢,最简单的方法就是给这个容器一个可以保持的应用,比如bash,运行 ubuntu 容器并进入容器的 bash:

docker run -t -i ubuntu /bin/bash
Screenshot from 2016-04-26 12:52:40

阅读全文…

你好,我的第二家

日期:2016年3月25日 作者: 分类:生活随笔 阅读:377

QQ截图20160325171938代码写烦了,趁着现在经理不在,组长不在,就写点东西,来悄悄偷懒一下。

大家都说,现在的社会就是这样,不管你到什么地方,都会有自己的不满,而我,现在正在体验着这种感觉。之前在东码时,一直都在吐槽着这不好那不好,最终下定决心离开它,想从此解脱这种烦恼,可是,到了下一家以后,很多东西得到了改善,可也有一些东西心里觉得有些不够。不过现在总体感觉也都还不错,只是感觉这样生活得有些劳累。

来了两个星期的时间了,说下总体的感觉吧!不用为每天中午吃什么而烦恼了,因为现在都是在公司里面吃统一的;也不用过着总感觉在混日子的上班生活了,因为现在几乎忙得不给你喘气的机会。其实也不至于这么忙,只是我觉得这样的忙,可以给我改变点什么,至少改变了我懒散的生活。

这个星期开始,周一经理在出差前召开了研发部会议,就说了一件事情,就是项目太紧,强制性进行周246的加班。听到这个消息,可能很多人就不爽了,本来是双休的时间,现在好了,加班!可我更加苦逼,周一晚上开始就进行了加班,这一开始,就到了今天周五,眼看这周就要结束,可我也感觉累得快不行了,全省酸痛……

听说加班有加班费!这样的消息,对加班的人来说,莫过于打了一针兴奋剂。不仅如此,晚饭也包了!这样也才让人感觉自己没有白干,虽然至今为止,我都还没有拿到过所谓的加班费……

说到这,不得不提下之前的公司了,原来的那些吐槽其实也是应该的。在了两年,每个月就只拿着那点可怜的固定工资,两年下来,查了下工资卡的进账单,也就那么几个月的工资是真的全额固定工资,其他的都被各种理由扣了,这样的收入,对于现代的90后在这样的城市中生活,真心有些累了。可发工资的老总还经常给我说,这样的工资,每个月不说多,至少也可以存个两千块吧!我*&%¥%#@#!现在想想,终于知道为何工作两年,还是身无分文了!看来离开的决定是正确的,而且也是一个最佳时机!

吐槽完了,说下收获吧!

阅读全文…

再见,我的第一家

日期:2016年3月25日 作者: 分类:生活随笔 阅读:134

QQ截图20160325171938

对于辞职,我没有什么经验,可现在有了,因为我真的辞职了。

早在一年前,我就有过辞职的念头,因为我觉得那个公司太过于小了,“小”就能带来很多方面的问题,一是人太少,交际范围有限,同事就那么两三个,何时才能壮大我的朋友圈;二是业务太少,完全没有什么规整点的项目给我们来做,平时感觉工作就是在混时间,结果浪费了大好青春;三是小就带来了各种制度的不完善,本来嘛,咱工作也是个正规的工作,本来应该享受一般白领所能享受的待遇,可公司太小,刚成立那么几年,各种制度不够完善,很多福利不但没有,每次发工资都要扣你几块,反正扣得原因有你想得到的,也有你想不到的……

每一个辞职者,或许都会有一个或者多个自己想要走的原因,但就像“一千个读者就会有一千个哈姆雷特”一样,每一个想要离开的人,都会编造出各种离开的理由,可说到底,也就无非那句话“世界那么大,我想去看看”,或者更直接点:“不爽!”所以在辞职申请当中,辞职理由那里留了很大的一个空间,可我就写了四个字:个人原因!本来这四个字是同事给我的忠告,说这四个字写上去,自己想这么说就怎么说,反正别人抠不出什么,其实我也觉得这四个字很适合,因为说到头来,的确是自己的原因,因为“不爽!”可后来没办法,人事那边说这样不好像上边交代,我只能再在后面加了一句,大概意思就是“世界那么大,我想去看看!”

对于这次的辞职,我一开始有些不知所措,因为没经验,不知道怎么去开口说出我要走了。然后一同事说他也要走了,我就给他说那你先去辞职,你先走,我断后!话是这么说,可真的要实践起来,还不是那么简单的事。我一直在做心理准备,想着如何去说我要辞职这个事情。之所以如此担忧,一方面是因为我是公司现今为止最老的员工,现在去辞职,可能对领导来说是一个打击;另一方面,是见识过前面辞职的员工,他们都或多或少和领导辞职的时候遇到了各种问题,要么是对工资的事情针锋相对,要么对社保的问题纠缠不清,而且前面辞职的同事,都被领导扣了一大笔的工资……对这些事情,我亲眼见识,也深有体会,害怕我现在的辞职又与领导闹起来,那我如何是好?我可不想把事情闹得不可开交,甚至以后见个面都觉得尴尬甚至不想见面。

阅读全文…

一个叫做《404》的互联网

日期:2016年3月2日 作者: 分类:互联网 阅读:457

几年以前,我曾经嘲笑过某科技界大佬。当时他说:也许90后、95后会慢慢不知道谷歌是什么网站。

那一年,这对于我来说简直就是世界上最好笑的笑话。谷歌,全世界最卓越的互联网公司,活在互联网的一代中国人,会不知道他们的网站?

google-404

今天,我收回这句嘲笑。因为这件不可能的事,它慢慢变成了现实。

没有人再关注什么谷歌不谷歌。对他们来说,百度也蛮好用的,反正他们几乎没用过谷歌。没有谷歌又怎样?大家还是开心的刷微博,看微信,听歌,看娱乐节目。对于从来就不知道谷歌的人来说,少了谷歌又有什么影响?

阅读全文…

在Linux中让echo命令显示带颜色的字

日期:2016年3月2日 作者: 分类:编程 阅读:171

echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”

例如:

echo -e “\033[41;37m TonyZhang \033[0m”

其中41的位置代表底色, 37的位置是代表字的颜色

注:

1、字背景颜色和文字颜色之间是英文的“”””

2、文字颜色后面有个m

3、字符串前后可以没有空格,如果有的话,输出也是同样有空格

下面看几个例子:

echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
 
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

控制选项说明 :

\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标

阅读全文…