Dockerfile指令
Dockerfile指令
引用自《Docker系列教程07-Dockerfile指令详解》- 周立
Dockerfile有十多个指令。本节我们来系统讲解这些指令,指令的一般格式为 指令名称 参数。
ADD 复制文件ADD指令用于复制文件,格式为:
ADD <src>... <dest>
ADD ["<src>",... "<dest>"]
从src目录复制文件到容器的dest。其中src可以是Dockerfile所在目录的相对路径,也可以是一个URL,还可以是一个压缩包
注意:
① src必须在构建的上下文内,不能使用例如:ADD ../somethine /something 这样的命令,因为 docker build 命令首先会将上下文路径和其子目录发送到docker daemon。
② 如果src是一个URL,同时dest不以斜杠结尾,dest将会被视为文件,src对应内容文件将会被下载到dest。
③ 如果src是一个URL,同时dest以斜杠结尾,dest将被视为目录,src对应内容 ...
Docker容器命令
Docker容器命令
引用自《Docker系列教程05-容器常用命令》- 周立
本节我们来讨论Docker容器的常用命令。
新建并启动容器[重要]使用以下 docker run 命令即可新建并启动一个容器。该命令是我们最常用的命令了,它有很多选项,下面笔者列举一些常用的选项。
① -d选项:表示后台运行
② -P选项:随机端口映射
③ -p选项:指定端口映射,有以下四种格式。
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
④ –network选项:指定网络模式,该选项有以下可选参数:
–network=bridge: 默认选项,表示连接到默认的网桥。
–network=host:容器使用宿主机的网络。
–network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置。
–network=none:不配置该容器的网络,用户可自定义网络配置。
示例1:
1docker run java / ...
docker-compose.yml命令
docker-compose.yml命令
引用自《Docker系列教程22-docker-compose.yml常用命令》- 周立
docker-compose.yml是Compose的默认模板文件。该文件有多种写法,例如Version 1 file format、Version 2 file format、Version 2.1 file format、Version 3 file format等。其中,Version 1 file format将逐步被被弃用;Version 2.x及Version 3.x基本兼容,是未来的趋势。考虑到目前业界的使用情况,本节只讨论Version 2 file format下的常用命令。
(1) build配置构建时的选项,Compose会利用它自动构建镜像。build的值可以是一个路径,例如:
1build: ./dir
也可以是一个对象,用于指定Dockerfile和参数,例如:
12345build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1 ...
docker-compose命令
docker-compose命令
引用自《Docker系列教程23-docker-compose常用命令》- 周立
和docker命令一样,docker-compose命令也有很多选项。下面我们来详细探讨docker-compose的常用命令。
build构建或重新构建服务。服务被构建后将会以project_service 的形式标记,例如:composetest_db 。
help查看指定命令的帮助文档,该命令非常实用。docker-compose所有命令的帮助文档都可通过该命令查看。
1docker-compose help COMMAND
示例:
1docker-compose help build # 查看docker-compose build的帮助
kill通过发送SIGKILL 信号停止指定服务的容器。示例:
1docker-compose kill eureka
该命令也支持通过参数来指定发送的信号,例如:
1docker-compose kill -s SIGINT
logs查看服务的日志输出。
port打印绑定的公共端口。示例:
1docker-comp ...
Docker镜像命令
Docker镜像命令
引用自《Docker系列教程04-Docker镜像常用命令》- 周立
搜索镜像可使用 docker search 命令搜索存放在Docker Hub中的镜像。
命令格式:
1docker search [OPTIONS] TERM
参数:
名称,缩写
默认值
描述
–automated
false
只列出自动构建的镜像
–filter, -f
根据指定条件过滤结果
–limit
25
搜索结果的最大条数
–no-trunc
false
不截断输出,显示完整的输出
–stars, -s
0
只展示Star不低于该数值的结果
示例1:
1docker search java
执行该命令后,Docker就会在Docker Hub中搜索含有“java”这个关键词的镜像仓库。执行该命令后,可看到类似于如下的表格:
1234567NAME DESCRIPTION STARS OFFICIAL AUTOMATEDjava ...
安装Docker
安装Docker
引用自《Docker系列教程02-Docker安装》- 周立
Ubuntu系统要求
Docker支持以下版本的Ubuntu,要求64位。
Bionic Beaver 18.04 (LTS)
Zesty 17.04
Xenial 16.04 (LTS)
Trusty 14.04 (LTS)
支持运行的平台:x86_64、armhf、s390x(IBM Z)。其中,如选择IBM Z,那么只支持Ubuntu Xenial以及Zesty。
本文使用Ubuntu 16.04 LTS,下载地址:http://cn.ubuntu.com/download/
安装步骤
卸载老版本Docker
在Ubuntu中,老版本的软件包名称是 docker 或者 docker-engine ,而Docker CE的软件包名称是 docker-ce。因此,如已安装过老版本的Docker,需要先卸载掉。执行以下命令,即可卸载老版本的Docker及其依赖。
1sudo apt-get remove docker docker-engine docker.io
需要注意的是,执行该命令 ...
爬虫框架go_spider
项目地址:https://github.com/hu17889/go_spider
go-spider文档
常见问题与功能说明
中文文档简介本项目基于golang开发,是一个开放的垂直领域的爬虫框架,框架中将各个功能模块区分开,方便使用者重新实现子模块,进而构建自己垂直方方向的爬虫。
本项目将爬虫的各个功能流程区分成Spider模块(主控),Downloader模块(下载器),PageProcesser模块(页面分析),Scheduler模块(任务队列),Pipeline模块(结果输出);
执行过程简述:
Spider模块从Scheduler模块中获取包含待抓取url的Request对象,启动一个协程,一个协程执行一次爬取过程,此处我们把协程也看成Spider,Spider把Request对象传入Downloader,Downloader下载该Request对象中url所对应的页面或者其他类型的数据,生成Page对象;
Spider调用PageProcesser模块解析Page对象中的页面数据,并存入Page对象中的PageItems中(以Key-Value对的形式保存) ...
跨平台GUI工具fyne
敬请期待……
Tech与Team — Leader 的自我修养
原文地址:https://kymjs.com/manager/2019/07/13/01 转载
招人那些事最近一直在招人,一直在面试,见了很多人,遇过很多事。
总的来说,在我面试别人的时候,能方便他人都会尽量去方便,面试过程中,尽量营造一个轻松的气氛,比如聊一些别人的强项,总是抓住别人薄弱点不放,把气氛搞得很尴尬,我觉得真的没意义。
可即便是这样,我发现最多的情况是,几乎所有人都不知道自己的强项在哪里——没有自我认知。
开放性问题问开放性问题可以很容易了解一个人,对于技术好的人可以很容易表现自己,对于技术不好的,一定会支支吾吾,因为根本就没有答案可背。比如通常有两个开放性的问题,是我一定会问的:
你在这家公司做的,你觉得最牛逼的事情是什么?
你做了几年 Android 开发,你觉得哪个开源项目让你学习到的最多。
其实这两个问题通常我都是希望从宏观和细节的角度,去尝试了解你对自己项目的认知和理解。
第一个问题,我得到的答案通常是一个很小的技术点。有两三个人,都是之前做互联网金融的(可见前两年互金的泡沫多可怕)说自己做的最牛逼的是是做了一套 hybrid 框架,可以高性能浏览 ...
“跟进”的正确方式
原文地址:“跟进”的正确方式 转载
工作中,我们常常会提到一个词叫做“跟进”,但是其实很多人并不懂得如何“跟进”,或者不知道怎么做好“跟进”。
有个问题抛出来,然后埋头苦干,一味只顾自己干,这不叫跟进。
跟进的“跟”,核心是沟通,沟通什么?沟通“进度”!
首先要跟需求方沟通,说明问题原因、解决方案、解决时间和计划。
其实要跟执行人沟通,安排什么人去处理,要沟通好,如果是自己处理,要排好优先级。
最后要跟关注的人汇报,阶段性汇报,开始、关键过程、结束,都要汇报,不要跟到一半就不管了。
优秀的人一定要懂得,一件事情既然做了,就值得我们去做好它。日常工作中,超过一半以上的事情都是需要我们跟别人一起协作的过程,所以平时多思考自己的做事方式,不单单是提升了自己,还会提高整个团队的效率。互联网中有个共识叫做“既定事实”,优秀不是被说出来的,而是我们认真做到了,大家就一定能看到!
谨以此共勉!
从 0 到 200 人团队,我的成长经历分享
原文地址:从 0 到 200 人团队,我的成长经历分享 转载
序前段时间,我写了一个《职业成长》的系列,文章发布后有很多人加了我微信,不少人在问:
你在 UC 是怎么走上管理这条路的?从自己一个人到带 200 多人的团队,中间是怎么走过来的?能不能分享一下你这 4 年的职业成长经历?
今天这篇文章,算是我的一个正式回答。
0 ~ 5 人:需求管理 & 文化雏形2013 年 5 月,我放弃了刚刚到手的晋升机会,从工作了 6 年的爱立信裸辞,以高级工程师的身份加入 UC 。
进入 UC 的第一个正式挑战,是团购导航产品。
接下来的一个月,我和另外一个小伙伴几乎没有一天是在晚上 11 点前下班的,好几次加班到凌晨 3 点,回家睡5、6个小时,早上起来匆匆吃完饭又继续上班。整个人就像打了鸡血一样。
可老天爷并没有因为我们不要命的加班,就眷顾我们。
项目上线后不到 2 个月,我就收到了『噩耗』:产品下线!连产品经理也静悄悄地离职了,那个时候我还在做着大卖的白日梦。
这个事情对我的打击是巨大的,我不甘心,千方百计询问原因,得到的答案是:产品需求分析没做好,很多地方没想清楚,数据很 ...
从这四点出发,不做 “ 空心 ” 程序员
原文地址:从这四点出发,不做 “ 空心 ” 程序员 转载
01 注重原理性知识现在的互联网环境下,注重原理性知识学习的程序员越来越少,特别是在这种培训机构大爆炸的环境下,在网上你会经常看到类似三个月从入门到精通高并发、分布式的广告,我相信培训机构有这套技术的能力,但是我不相信一个初学者有这么好的接收能力。甚至某个培训机构的讲师里,有一个1997年出生的架构师,20岁出头就当上了架构师,真的是后生可畏呀。在我的思维里,架构师不是学出来的,架构师是通过项目喂出来的。好了,我们还是言归正传吧。
为什么要注重原理型知识呢?因为原理性知识是我们的根,我列举了三个例子,对这个观点进行说明。
1、你懂设计模式,无论你是做系统架构设计还是阅读开源项目源码,你会发现,最终他们都绕不开设计模式。
2、你懂数据结构和算法,在高并发这种分秒必争、时间就是金钱的场景下,你知道List、Map 该如何取舍。
3、你懂网络通信的原理,在我们做系统架构、问题排除时都会有很大的帮助。
可以这么说,原理性知识决定了程序员的下限,原理性知识强的程序员,下限不会太低,相反,原理性知识不强的程序员,我相信上限也不会高到哪 ...
华为发布面向2025十大趋势
转载 华为今日(2019-08-08)发布全球产业展望GIV@2025,提出智能世界正在加速而来,触手可及,并预测:到2025年,智能技术将渗透到每个人、每个家庭、每个组织,全球58%的人口将能享有5G网络,14%的家庭拥有“机器人管家”,97%的大企业采用AI。
戳视频,了解2025十大趋势
全球产业展望报告于2018年首次推出,初衷是打开智能世界的产业版图,为各行各业创新增长提供路径参考。
2019年,华为基于对交通、零售、金融、制造、航空等17个重点行业的案例研究,并结合定量数据预测,进一步提出了面向2025的十大趋势,它们分别是:
趋势一:是机器,更是家人随着材料科学、感知人工智能以及5G、云等网络技术的不断进步,将出现护理机器人、仿生机器人、社交机器人、管家机器人等形态丰富的机器人,涌现在家政、教育、健康服务业,带给人类新的生活方式。
GIV预测:2025年,全球14%的家庭将拥有自己的机器人管家。
趋势二:超级视野以5G、AR/VR、机器学习等新技术使能的超级视野,将帮助我们突破空间、表象、时间的局限,见所未见,赋予人类新的能力。
GIV预测:2025年,采用 ...
如何判断自己有没有管理的潜力?
原文地址:如何判断自己有没有管理的潜力? 转载
多数人都面临过做管理还是做业务的选择。很多人都想在管理上有所尝试,有的人进入了管理通道,但发展并不顺利。企业为了扩张发展而绞尽脑汁、不惜代价地培养管理者,可他们面临的最大困惑是,芸芸众生谁更有管理的潜力呢?
本人从事人才评价工作三十年,可以说阅人无数,其中不乏优秀杰出的管理者,也有表现一般的管理者,还有一些不合格的管理者。我一直在观察和总结,如何判断一个人是否具有管理的潜力?
一、如何判断一个人具有管理的潜力?1、看一个人是否具有抓住工作重点的能力,是否有明确的工作思路抓重点是指能快速地将纷繁复杂的各种表面现象归纳总结为结构清晰的事物特征,抓住事物的根本、问题的关键,并确定工作重心的能力。管理工作涉及到的环境和对象很复杂,范围越广规模越大,复杂度就成几何级数上升。
所以“抓重点”是管理者必须具有的第一项能力。
1)“抓重点”为什么重要?抓重点能力弱的管理人员,在工作上表现上往往是没有主见和工作思路,左右摇摆,拿不定主意,力气使不到点上,他可能很努力、很辛苦,团队成员跟着他不停地东奔西跑,但基本上是瞎忙活,因为没有结果和成绩。
古人说 ...
无我编程的10条诫律
原文地址:无我编程的10条诫律 转载
无我编程的10条诫律最早出现在 1971 年 Gerald Weinberg 出版的《程序开发心理学》中。后由Stack Overflow网站的联合创始人 Jeff Atwood 在其2006年5月9日的博文《无我编程的10条诫律》中再次列出。
The Ten Commandments of Egoless Programming
https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/
Jeff Atwood 在其2006年5月12日的博文《无我编程:你的工作不代表你》中,引用 Johanna Rothman的描述,解释了无我编程的由来。
Egoless Programming: You Are Not Your Job
https://blog.codinghorror.com/egoless-programming-you-are-not-your-job/
无我编程发生在开发阶段,表现为技术团队经常通过同级评审的方式来发现软件中的缺陷 ...
电子邮件,应该是这样写滴(n个好习惯让我们避免互相伤害)
原文地址:电子邮件,应该是这样写滴(n个好习惯让我们避免互相伤害) 转载
在当年入职百度的时候,被俞军培训过电子邮件文化,其中所谈的理念和习惯一直沿用至今。有几次看到别人电子邮件中存在令人抓狂的细节和可以做的更好的部分,都会给些建议甚至还做过专门的小交流。为了避免重复再重复的说同样的话,干脆把一些重点写下来分享下吧。
1、要发给相关的人,不要发给不相关的人这句看上去就是废话,对吗?但是很多邮件却都做不好这点,而这也许是电子邮件文化中最重要的一条。
要发给相关的人,首先是发对人,以及是让与此有关的人尽量知悉,就像建议让小白兔吃胡萝卜的事应该发给小白兔,抄送兔子妈妈,前者是直接人物,后者是相关人物。一般我们较少会发错直接人物,但经常会忘记也发给相关人物,这样容易造成信息传递的缺失,要知道兔子妈妈肯定会关心这件事,而且可能需要她来帮忙做胡萝卜刺身,所以她应该知晓或被通知到。
不要发给不相关的人,目的是避免其他人收到不必要的干扰。很多人都会抱怨电子邮件太多,而其中肯定有一部分是不需要收的。你们家小白兔要不要吃胡萝卜,你顶多也发给吃胡萝卜的小山羊,干嘛告诉小老虎呢?除了有一些流程要求的,或 ...
编程一生《三言》
摘抄自微信公众号 编程一生 转载
问别人之前最好先自己百度,google一下,以免问出太低级的问题。
要有多自律,就有多自由,保持严谨,不失弹性。
高效率,慢生活。
格局决定结局,态度决定高度。
别说你爬过的山,只有早高峰。
只有重塑自己的习惯,才能过上自己想要的人生。
考虑可维护性比考虑性能更重要。
请勿久坐,多喝水,尤其是遇到很久都解决不了的问题的时候,多走动走动。
普通程序员+google=超级程序员。实在不行,百度也可以,学会利用搜索引擎来辅助自己解决问题。
一个好的程序员是那种过单行线马路都要往两边看的人。
编程时要保持这种心态:就好像将来要维护你这些代码的人是一位残暴的精神病患者,而且他知道你住在哪。
任何你写的代码,超过6个月不去看它,当你再看时,都像是别人写的。 –Eagleson’s law
从小事做起,然后再扩展。
熬夜低效率写代码,不如好好睡觉。
让自己变得更好,是解决一切问题的关键。
发版后出了问题第一时间回滚,千万不要想不可能是自己造成的。
每周五抽出时间问一下上下游业务方,目前有什么问题吗?
上线前问自己:你有多大把握不出问题?
所有事情所 ...
谈谈“五级工程师和职业发展”的思考
原文地址:谈谈“五级工程师和职业发展”的思考 转载
再过几个小时,春节长假就结束了。我想,不管过去的一年过的怎样,大部分工程师们对开年的的工作和生活都应该是有所憧憬和计划的,我也不例外。只不过我选择了把前年在吴军老师《硅谷来信》上看到的《五级工程师和职业发展》重温了一下(版权原因,我这里无法提供原文的链接,但这一定阻挡不了聪明、求知若渴的你)。如果你看过原文,我依然觉得你不妨看看这里的思考,因为我所思考的可能更贴近实际的你。
什么是“五级工程师”?著名前苏联物理学家朗道曾经给出过一个五级物理学家的划分,吴军老师在此基础上,给出了“五级工程师”的划分:
第五级:能独立解决问题,完成工程工作;
第四级:能指导和带领其他人一同完成更有影响力的工作;
第三级:能独立设计和实现产品,并且在市场上获得成功;
第二级:能设计和实现别人不能做出的产品,也就是说他的作用很难取代;
第一级:开创一个产业。
你处在哪一级?五级工程师的划分非常简洁,但是却有点抽象。我举几个大家熟悉的人物,方便大家进行定位:
云风, 第三级;
阮一峰,第三级;
范凯,第四级;
王垠,第五级;
池建强,在用友度过了第 ...
那些程序员小白还没掌握的30件事
原文地址:那些程序员小白还没掌握的30件事 转载
从事编程并不容易。每年有许多人从各国的顶级计算机科学专业毕业,这是所有人都向往的最具竞争力的职业之一。与此同时,编程也振奋人心。随着技术的进步,每天都有新的创新。对于喜欢编程,并立志从事编程的人而言,编程是其热爱且为之奋斗的事业。
本文的这个列表可以帮助新手答疑解惑,节省精力。即使目前某些内容可能暂时不需要,但是总有一天它会派上用场。
1. 从事编程无需学位,但需要有所了解。编程是少数几个不取决于学位的职业之一。但是编程是一项知识密集型职业。如果你要从事编程行业,阅读一些基本的涵盖计算机科学的基本概念等书籍是必要的。除了编写功能代码之外,为你的技术打下坚实基础,对基本概念有一个深刻理解,这使得你能够赢得技术面试有助于与同事交流。
2. 在问题解决技能上,编程十分具有创造力。大多数人都有这样一种先入为主的观念,即编程就是分析和解决问题的能力。这只说对了一部分。编程还涉及许多创造性。通常,可以使用多种方式编写给定的代码。当你设计出最简单有效的编码方式时,创造性就产生了。
3. 掌握所有编程语言是不可能的,诀窍是将一门语言学到极致。世界 ...
搭建基于 Aria2 的下载机
搭建基于 Aria2 的下载机
参考:树莓派3B+ 远程下载服务器(Aria2)
安装 Aria2使用以下命令安装 Aria2:
1sudo apt install aria2
编辑 Aria2 配置文件创建文件夹 mkdir -p ~/.config/aria2。
添加一个 Aria2 配置文件 vim ~/.config/aria2/aria2.config。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#后台运行daemon=true#用户名#rpc-user=user#密码#rpc-passwd=passwd#设置加密的密钥rpc-secret=secret#允许rpcenable-rpc=true#允许所有来源,web界面跨域权限需要设置rpc-allow-origin-all=true#是否启用https加密,启用之后要设置公钥、私钥的文件路径#rpc-secure=true#启用加密设置公钥#rpc-certific ...