Allen 谈 Docker 阶段总结(一)

「Allen 谈 Docker 系列」DaoCloud 正在启动 Docker 技术系列文章,每周都会为大家推送一期真材实料的精选 Docker 文章。主讲人为 DaoCloud 核心开发团队成员 Allen 孙宏亮,他是 InfoQ《Docker 源码分析》专栏作者,已出版《Docker 源码分析》一书。Allen »

如何构建具有持续交付能力的 Docker 化 Django 应用(四)

目标:我们将之前实现的 Django + MySQL + Redis 留言板应用,送上云端,轻松实现应用在云端持续交付。 本项目代码维护在 DaoCloud/python-django-cd-sample 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。 工欲善其器,必先利其器。首先,你需要 DaoCloud 帐号。 云端镜像构建 比起本地创建,在云端创建会更简单。 第一步:在控制台点击「 »

如何制作一个定制的 Python 基础 Docker 镜像(二)

目标:准备一个定制的 Python 基础镜像。基础镜像,通常为含最小功能的系统镜像,之后的应用镜像都以此为基础。 本项目代码维护在 DaoCloud/python-sample-base-image 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有脚本文件。 制作基础镜像 选择 Ubuntu 官方的 14.04 版本为我们依赖的系统镜像。 FROM ubuntu:trusty 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行, »

如何开发一个基于 Docker 的 Python 应用(一)

目标:用 Docker 的方式搭建一个 IPython Notebook 应用 本项目代码维护在 DaoCloud/python-ipython-notebook 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。 前言 Python 家族成员繁多,解决五花八门的业务需求。这里将通过 Python 明星项目 IPython Notebook,使其容器化,让大家掌握基础的 Docker »

Python 开发者的 Docker 之旅

「人生苦短,我用 Python」这句话作为「Docker 开发大礼包」的第二季的开篇引言是再合适不过了。这句话的出处是 Bruce Eckel,对,就是那个 C++ 和 Java 生命里最重要那个男人。这大概就是传说中的大是大非之后痛彻心扉的领悟。 Python 其实是一门非常古老的语言,他的故事几乎伴随着我国改革开放的历史步伐一路走来,也同样经历了跌宕起伏,涅槃重生的激荡二十年。毫不夸张的说,Python 的演化历史和成果,是程序员自强不息摆脱机器思维, »

与 Docker 和 DaoCloud 共舞

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“ DaoCloud 分享写作计划” 已全面启动,欢迎投稿。 作者:Adrian Zhang 一天,乔布斯走进了拉里.凯尼恩 ( Larry Kenyan) 的办公隔间,他是负责麦金塔电脑操作系统的工程师,抱怨说开机启动时间太长了。凯尼恩开始解释,但乔布斯打断了他。他问道:“如果能救人一命的话, »

PHP 开发者的 Docker 之旅

用 PHP 作为我们「Docker 开发大礼包」开篇是带着一些朝圣的心情的。这是一门堪称「古老」的语言,这也是一门争议最多的语言,这更是一门不断涅槃的语言。「PHP 是最好的语言」这个流传已久的梗,或许正是对我国最有群众基础的编程语言描述里,最经典的注解。 就让我们一起回顾一下 PHP 的发展历程作为此系列文章的开篇。历史是最好的老师,他给每个未来提供启示。 谁创造了 PHP? Rasmus Lerdorf 在 »

如何开发一个 Laravel + MySQL 框架的 Docker 化应用(六)

目标:基于主流的 PHP 框架,用 Docker 镜像的方式搭建一个 Laravel + MySQL 的应用。 本项目代码维护在 DaoCloud/php-laravel-mysql-sample 项目中。 创建 Laravel 应用容器 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。 首先,选择官方的 PHP 镜像作为项目的基础镜像。 »

如何开发一个 PHP + NewRelic 的生产级 Docker 化应用(五)

目标:我们将为之前创建的 PHP + MySQL 应用,配置由 NewRelic 提供的应用监控探针。 本项目代码维护在 DaoCloud/php-newrelic-sample 项目中。 创建 PHP 应用容器 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。 首先,选择官方的 PHP 镜像作为项目的基础镜像。 FROM daocloud. »

如何开发一个 PHP + MySQL 的 Docker 化应用(三)

目标:基于典型的 LAMP 技术栈,用 Docker 镜像的方式搭建一个 Linux + Apache + MySQL + PHP 的应用 。 本项目代码维护在 DaoCloud/php-apache-mysql-sample 项目中。 创建 PHP 应用容器 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。 首先,选择官方的 »

如何开发一个 PHP 的 Docker 化应用(二)

目标:基于 PHP 的 Docker 基础镜像,开发一个 Docker 化的示例 PHP 应用 。 本项目代码维护在 DaoCloud/php-sample 项目中。 Docker 化应用的关键元素 镜像是 Docker 应用的静态表示,是应用的交付件,镜像中包含了应用运行所需的所有依赖:包括应用代码、应用依赖库、应用运行时和操作系统。 Dockerfile »

如何制作一个定制的 PHP 基础 Docker 镜像(一)

目标:准备一个定制的 PHP 基础镜像。基础镜像,通常为含最小功能的系统镜像,之后的应用镜像都以此为基础。 本项目代码维护在 DaoCloud/php-apache-image 项目中。 制作基础镜像 选择 Ubuntu 官方的 14.04 版本为我们依赖的系统镜像。 FROM ubuntu:trusty 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。 »

基于Docker 与 DaoCloud 创建简单够用的持续集成环境

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:叶挺 本次持续集成环境主要构成 代码版本库 coding.net CI服务 DaoCloud CI运行器 DaoCloud 搭建过程中的主要步骤 在coding.net上添加代码库 申请DaoCloud自有主机服务 安装docker 搭建基础 »

使用coding、DaoCloud、和Docker打造markdown纯静态博客

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎踊跃投稿。 作者:sinkcup 说起独立博客的技术演变,从数据库到纯文本放git是一大进步,从HTML到markdown又是一大进步。 解析技术有没有进步呢?既然markdown是纯文本了,再用PHP/Python/Ruby去实时解析,多么多此一举啊(比如github用的Jekyll),还需要配置服务器环境。如果用shell把markdown转换成HTML,生成纯静态博客多么愉快,无需服务器, »

部署Hexo到DaoCloud中

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:李建赢 编者注:作者曾分享过在OSX下使用docker构建hexo环境。经过学习和研究,他带来了更为简便、高效的部署方案。 意义 Pages服务更新速度慢,使用DaoCloud免费配可以快速更新Blog。 工作流 Hexo生成静态文件 按照正常流程Deploy WebHook到DaoCloud中的目标容器 目标容器更新部署好的博客 静态文件服务器同时也做好更新 »

我的 Daocloud 持续集成开发之旅

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:乔立勇 我要做什么呢? 最近开始接触docker,作为一个软件geek,觉得这个是一个再方便不过的东西了。于是开始着手准备搞一个好玩的玩意。 开始吧,开始吧! 互联网时代讲究的就是效率,所以开发周期要快,要支持持续集成,要向后兼容。。。 版本控制工具+代码托管服务器,当然是git+ »

DaoCloud体验-使用node构建应用程序

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:xinshangshangxin node应用程序demo 首先,选择一个平台 clone 代码到你的git平台上,譬如 Coding / GitHub / GitCafe 在控制台点击 服务集成 ; 创建 mysql服务和 mongodb服务, »

Code to Cloud的幸福之旅

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:刀哥+ 最近DaoCloud与Coding打通OAuth接口,笔者登上DaoCloud快车,带着大家分分钟体验一下Code to Cloud永不落地的云上幸福Docker旅程。整个旅程围绕着的Sign、Code、Build、Ship、Run、Play展开,其中ship部分内容,将首次带您探秘DaoCloud新内测的”我的主机“ »

使用Coding和DaoCloud搭建markdown博客

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:sinkcup 博客有两种:使用服务商提供的博客(比如cnblogs.com),或者自己搭建独立博客。对于开发者来说,有个独立博客是很酷炫的。 独立博客系统(比如wordpress、ghost)的架构是HTTP server + PHP/Ruby等后端语言 »

基于DaoCloud创建StartBBS容器实战

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:Geekwolf 首先,StartBBS 是一款优雅、开源、轻量社区系统,基于MVC架构,采用PHP+MySQL 官网:http://www.startbbs.com/ 项目地址: »

Docker X11 穿透方案

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:Viz 前一阵子折腾 Ubuntu SDK,苦于该 SDK 仅供 Ubuntu 发行版使用,想要移植到 Gentoo 需要话费大量的时间和精力(依赖吖!)。于是我想到了能否用 Docker »

构建最小Docker Image运行网站程序并部署到DaoCloud中

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:李建赢 意义: 阅读“创建尽可能小的Docker容器(中译本)”后,经过对比我们可以发现 Adriaan de Jonge的工作方式是通过CGO实现Golang的静态编译以达到目的。我们认为这种方式虽然很棒,但是操作起来并不容易,而且在很多项目中编译起来颇为麻烦。 为了精益求精,我们在极致精简与正常使用操作系统( »

使用 DaoCloud 部署 NODE

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:xinshangshangxin DaoCloud有go和python的example,却没有Node的example,把我踩的坑记录分享 注册DaoCloud 注册地址: https://account.daocloud.io/signup 整个构建和部署所需要的资源,DaoCloud都免费提供,为所有的注册用户免费提供以下资源: 3个项目, »

使用 Docker 构建 Java Web 运行环境

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:Niko Guo(Java Web后端工程师,来自厦门) 1. 前言 本文将简要介绍如何使用 Docker 搭建一个 Java Web 应用的运行环境,最终的 Docker »

Docker简明教程

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,本文是入选该计划的第一篇优秀文章。 作者:曹艳明 Docker自从诞生以来就一直备受追捧,学习Docker是一件很炫酷、很有意思的事情。我希望通过这篇文章能够让大家快速地入门Docker,并有一些学习成果来激发自己的学习兴趣。我也只是一个在Docker这条巨鲸上玩耍的小孩,全文如有不明确、不正确的地方,还请斧正。 Ubuntu上安装Docker Docker的基础是Linux容器技术,因此学习Docker最好是使用Linux。这里推荐Ubuntu系统,如果手边没有Ubuntu系统可以去Digitalocean、 »

持续集成的重要性与技术挑战

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:章培昊 我从事了十多年IT项目开发工作,在摸爬滚打中,经历了项目管理的各种弊病,也一直在学习和探索新的项目管理模式。 曾经有一位产品经理对我抱怨说,他希望每天上班都希望能拿到一个昨天晚上完成的最新版本,不需要每个功能都完成,但是完成的每个功能他都希望尽快看到,以确认开发人员正在做他想要做的东西。而那时,我们只能在两周一次的迭代结束时,提交给他一个完整的版本,而此时如果发现问题,往往修改成本会很高, »

Docker技术入门

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 作者:刘思贤 关注Docker这项技术差不多一年多了,最近关于Docker的使用案例越来越多,于是就想动手实验下这项技术。自己整理了一个入门手册,分享给大家。 Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的“应用”,这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案。 »

在OSX下使用docker构建hexo环境

作者:李建赢 [编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,欢迎投稿。 本文的价值 截止目前,在docker hub上还看不到hexo 3+版本的镜像构建。 node环境真的是比较恼人,实在是不想来回安装,真的是太痛苦了。 基于dockerfile构建自己的HEXO环境非常灵活,可以根据自己的情况进行定制。 可以导入导出复制环境部署到其他电脑中。 实践开始 docker安装 »

兄弟肉夹馍的开发运维一体化

上回说到学校后门的黑暗料理,立马开始收到各路私信推荐,且精确提供,如“第四根电线杆”这样的地理位置信息,“面向憨厚的胖大娘”的人脸识别技术,和“排队最长的那家”此类的强社交属性信息。今天的主角,兄弟肉夹馍的故事,就是这么来的。 开发运维,齐力断金。 肉夹馍,属于走三层混合架构的典型代表,同类型的还有驴肉火烧,煎饼果子,大饼卷肉。这个架构因其独特的分层设计原则,带来了极大的开发便利性。这一架构在全球各地都有变种,如汉堡包,三明治, »

使用Docker来搭建gitlab

[编者的话] 当文字偶遇代码,当程序插上了翅膀,让分享成为我们彼此沟通的语言。我们期待可以构建这样一个平台让开发者们看到你们的智慧,挖掘你们的才华,让彼此在开源的路上不再孤独。“DaoCloud分享写作计划”已全面启动,本文是入选该计划的第一篇优秀文章。 作者:薛斌雷(绿茶浏览器后端开发) 所有的团队都面临同样一个问题,代码库的版本管理。 gitlab可以说是开源的github,可以自行部署在任何地方。 试用可以访问 gitlab 。 那对于团队来讲,我要怎么去部署、升级、备份、迁移才是最关键的地方。这个时候有了Docker这么牛逼的东西出现了。 最最最根本的就是它不会影响你现有的环境 »

砂锅馄饨的交付件

但凡和非本行业从业人员聊天,一说起你是程序员,总是呵护状的鼓励你“少加班,注意身体哦”。也不知道这楼是从哪一辈起开始被歪的,但本行业高薪、高压力、高报废率几乎都快妖魔化了。加上程序员这一族群,本就提前进化到了二次元,语言功能渐渐退化,配合上高智人群特有的高冷感,几乎鲜有在舆论阵地的正声的主儿。 我也压根没打算今天能把这楼歪回去,因为加班这个东西的确是我们这行的表象特征。但内因或许只有这个族群的人才能真正理解我下面要说的话。 程序开发不是一份工作,而是一次修行,生生不止。 写程序这个工作是一个创造型激发的过程,但凡创造性的工作都要激发灵感,画家,作家,演员和码农都是这类人。而傍晚恰恰是人类新陈代谢最旺盛的阶段, »

小杨生煎的持续交付

我为老东家的CTO部门工作的七年里,除了吃饭睡觉码代码,干的最多的事情就是布道。给工程师讲技术,给管理层讲业态,给客户讲故事。但让我很沮丧的是,在离职那天给我留言最多的一条,居然是“很遗憾,再也听不到你讲美食了”。好吧,虽然我们怀揣着改变世界的梦想踏上征程,却总是在路口的料理摊停下了脚步。这个插曲,就算是我这系列文章的引子。 每一个吃货的心里,都住着一个厨子。 每一个码农的心里,都憋着一个梦想。 因为出来创业了,开始有机会接触到形形色色的创业者。也可能我们的主业是技术型创业的关系,大家也愿意更敞开心扉的和我们分享他们的发展痛点,我们也总是尽量从技术的视角给到对方一些建议,久而久之有人给我们的沙龙取名” »

Docker源码分析(十):Docker镜像下载

1.前言 说Docker Image是Docker体系的价值所在,没有丝毫得夸大其词。Docker Image作为容器运行环境的基石,彻底解放了Docker容器创建的生命力,也激发了用户对于容器运用的无限想象力。 玩转Docker,必然离不开Docker Image的支持。然而“万物皆有源”,Docker Image来自何方,Docker Image又是通过何种途径被传输到了本地,以致用户可以通过Docker Image创建容器?回忆起初次接触Docker的场景,大家肯定对两条命令不陌生:docker pull和docker run。这两条命令中, »

用户必读之八:体验加速器

DaoCloud加速器是我们为中国开发者提供的Docker Hub Mirror服务。这个服务是DaoCloud上线的第一款产品,多数用户已经熟练使用,这里就不撰文详述了。在DaoCloud的博客,我们有两篇文章非常详细的介绍了Docker Hub Mirror的工作机制,和DaoCloud加速器的后台架构: 玩转Docker镜像 DaoCloud宣布Docker Hub Mirror服务永久免费 Docker镜像的分层文件系统是非常有趣的创新,作为Docker用户,大家感兴趣可以阅读DaoCloud成员孙宏亮撰写的Docker源码分析系列中有关Docker镜像的文章。 貌似这几行就攒一篇博客似乎有些过意不去,我们在这里还是提一下使用加速器的一些注意事项吧: 加速器是什么,我需要使用吗? 使用Docker的时候,需要经常从官方获取镜像。由于显而易见的网络原因,获取镜像的过程较慢, »

用户必读之七:一键部署上云端

Docker image已经构建完毕,服务实例也准备就绪。 万事具备,让我们发布应用吧! 发布应用,首先需要从应用商店选择一个版本的docker image 点击“镜像仓库” 点击项目名称,从属性列表中选择一个要发布的版本,点击“部署”,也可以直接点击屏幕右上角的“部署最新版本” 在部署的页面中,需要指定容器实例的名称 目前DaoCloud为用户提供格式为*.daoapp.io的二级域名,域名的构成方式,为项目名称+容器名称的组合,中间用中划线连接 选择容器资源, »

用户必读之六:逛一逛服务市场

应用的运行离不开各类后台服务。DaoCloud服务市场目前提供MongoDB、MySQL、Redis和InfluxDB服务。 点击服务图标,可以创建服务实例,具体步骤如下: 点击“创建服务实例” 输入服务实例名称 选择配置,目前我们提供了从50MB到200MB不等的数据容量,可供绝大多数应用正常使用 点击“创建“,DaoCloud将在云平台为您部署相应的服务实例 在服务实例的页面中,可以查看服务参数、链接地址、密码、绑定应用情况和删除服务实例 DaoCloud服务市场还将陆续集成各类第三方SaaS化服务,目前提供了New Relic服务。创建New Relic服务实例, »

用户必读之五:管理镜像仓库

如前文所述,镜像仓库是保存docker image的一个内部registry。点击镜像仓库后,可以看到两类应用:“我的应用”和“DaoCloud应用”。 先说DaoCloud应用,这些是DaoCloud预置在商店中的一些sample app。目前我们已经上架了许多非常有趣的应用。DaoCloud应用是只读的,点击图标进入后,我们可以查看应用的概览,和应用的版本信息。点击“部署”按钮,可以把应用的docker image推送到云平台部署运行。 我的应用是用户在“代码构建”中构建的docker image的集合。我的应用以项目为单位, »

用户必读之四:关于CI的那些事

DaoCloud支持持续集成CI服务 DaoCloud CI是我们自主研发的CI执行引擎,目前支持如下语言和服务: 语言:Golang、Python、Java 服务:MySQL、MongoDB、Redis 参照下面两步立刻触发第一次持续集成: 配置脚本 Push代码 1. 准备持续集成需要的配置文件 您可以通过在代码根目录放置一个daocloud.yml文件来配置您的测试任务,请参考我们的持续集成配置文档以及我们维护在github上的示例程序。 下面是一个配置文件示例: #which build image you want »