Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具.它将 Docker 主机池转变为单个虚拟 Docker 主机. Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机.源码来源 支持的工具包括但不限于以下各项: Dokku Docker Compose Docker Machine Jenkins 原理 如下图所示,swarm 集群由管理节点(manager…
Maven 依赖管理 Maven 一个核心的特性就是依赖管理.当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难.针对此种情形,Maven 提供了一种高度控制的方法. 可传递性依赖发现 一种相当常见的情况,比如说 A 依赖于其他库 B.如果,另外一个项目 C 想要使用 A ,那么 C 项目也需要使用库 B. Maven 可以避免去搜索所有所需库的需求.Maven 通过读取项目文件(pom.xml),找出它们项目之间的依赖关系. 我们需要做的只…
​ Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来. 创建分支命令: git branch (branchname) 切换分支命令: git checkout (branchname) 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录. 合并分支命令:…
Maven 自动化构建 自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖项目的稳定. 比如一个团队正在开发一个项目 bus-core-api, 并且有其他两个项目 app-web-ui 和 app-desktop-ui 依赖于这个项目. app-web-ui 项目使用的是 bus-core-api 项目的 1.0 快照: <project xmlns="http://maven.apache.org/POM/4.0.0" x…
Git 服务器搭建 上一章节中我们远程仓库使用了 Github,Github 公开的项目是免费的,2019 年开始 Github 私有存储库也可以无限制使用. 这当然我们也可以自己搭建一台 Git 服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install…
Maven 构建配置文件 构建配置文件是一系列的配置项的值,可以用来设置或者覆盖 Maven 构建默认值. 使用构建配置文件,你可以为不同的环境,比如说生产环境(Production)和开发(Development)环境,定制构建方式. 配置文件在 pom.xml 文件中使用 activeProfiles 或者 profiles 元素指定,并且可以通过各种方式触发.配置文件在构建时修改 POM,并且用来给参数设定不同的目标环境(比如说,开发(Development).测试(Testing)和生产…
Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://git-scm.com/downloads Linux 平台上安装 Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具. 在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系…
Maven Web 应用 本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的项目,如何创建.构建.部署已经运行一个 web 应用. 创建 Web 应用 我们可以使用 maven-archetype-webapp 插件来创建一个简单的 Java web 应用. 打开命令控制台,进入到 C:\MVN 文件夹,然后执行以下的 mvn 命令: C:\MVN>mvn archetype:generate -DgroupId=com.companyname.automobile -…
Maven 教程 Maven 翻译为"专家"."内行",是 Apache 下的一个纯 Java 开发的开源项目.基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建.报告和文档等步骤.Maven 是一个项目管理工具,可以对 Java 项目进行构建.依赖管理.Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目.Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金…
Maven 环境配置 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK. 如果你还未安装 JDK,可以参考我们的 Java 开发环境配置. 系统要求 项目 要求 JDK Maven 3.3 要求 JDK 1.7 或以上Maven 3.2 要求 JDK 1.6 或以上Maven 3.0/3.1 要求 JDK 1.5 或以上 内存 没有最低要求 磁盘 Maven 自身安装需要大约 10 MB 空间.除此之外,额外的磁盘空间将用于你的本地 Maven 仓库.你本地仓库的大…
Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务. 如果你还不了解 YML 文件配置,可以先阅读  . Compose 使用的三个步骤: 使用 Dockerfile 定义应用程序的环境. 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起…
Docker Machine 简介 Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机. Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker. Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean. 使用 docker-machine 命令,您可以启动,检查,…
Docker 容器连接 前面我们实现了通过网络端口来访问运行在 docker 容器内的服务. 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P 或  -p 参数来指定端口映射. 下面我们来实现通过端口连接到一个 docker 容器. 网络端口映射 我们创建了一个 python 应用的容器. xxx@xxx:~$ docker run -d -P training/webapp python app.py fce072cc88cee71b1cdceb57c2821d054a…
Maven IntelliJ IntelliJ IDEA 已经内建了对 Maven 的支持.我们在此例中使用的是 IntelliJ IDEA 社区版 11.1. IntelliJ IDEA 的一些特性列出如下: 可以通过 IntelliJ IDEA 来运行 Maven 目标. 可以在 IntelliJ IDEA 自己的终端里查看 Maven 命令的输出结果. 可以在 IDE 里更新 Maven 的依赖关系. 可以在 IntelliJ IDEA 中启动 Maven 的构建. IntelliJ ID…
Maven NetBeans NetBeans 6.7 及更新的版本已经内置了 Maven.对于以前的版本,可在插件管理中心获取 Maven 插件.此例中我们使用的是 NetBeans 6.9. 关于 NetBeans 的一些特性如下: 可以通过 NetBeans 来运行 Maven 目标. 可以使用 NetBeans 自身的控制台查看 Maven 命令的输出. 可以更新 Maven 与 IDE 的依赖. 可以在 NetBeans 中启动 Maven 的构建. NetBeans 基于 Maven…
Maven Eclipse Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 Maven 和 Eclipse 集成在一起. 在最新的 Eclipse 中自带了 Maven,我们打开,Windows->Preferences,如果会出现下面的画面: 下面列出 m2eclipse 的一些特点: 可以在 Eclipse 环境上运行 Maven 的目标文件. 可以使用其自带的控制台在 Eclipse 中直接查看 Maven 命令的输出. 可以在 IDE 下更新 Maven 的依赖关…
Docker 安装 CentOS CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux(RHEL) 依照开放源代码规定发布的源代码所编译而成.由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用. 1.查看可用的 CentOS 版本 访问 CentOS 镜像库地址: 可以通过 Sort…
Docker Dockerfile 什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. 使用 Dockerfile 定制镜像 这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可. 1.下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件) 在…
Docker 镜像加速 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: 科大镜像: 网易: 阿里云: 你的ID>.mirror.aliyuncs.com 七牛云加速器: 当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址.国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务. 阿里云镜像获取地址: ,登陆后,左侧菜单选中…
Git 远程仓库(Github) Git 并不像 SVN 那样有个中心服务器. 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作. 你就需要将数据放到一台其他开发人员能够连接的服务器上. 本例使用了 Github 作为远程仓库,你可以先阅读我们的 添加远程库 要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下: git remote add [shortname] [url] 本例以 Github 为例作为远程仓库,如…
云服务器 云服务器(Elastic Compute Service, ECS)是一种简单高效.安全可靠.处理能力可弹性伸缩的计算服务. 云服务器管理方式比物理服务器更简单高效,我们无需提前购买昂贵的硬件,即可迅速创建或删除云服务器,云服务器费用一般在几十到几百不等,可以根据我们的需求配置. 目前市场上的云服务器很多,这里主要介绍以下几家: :活动折扣力度很大(1核2G,72.60/年). :腾讯云目前活动多一些,性价比也高. 注意:很多云服务器给新用户提供的优惠力度是最大,基本上都是 1-2 折…
Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地 Docker 主机镜像 2.创建镜像 列出镜像列表 我们可以使用  docker images 来列出本地主机上的镜像. xxx@xxx:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b…
Windows Docker 安装 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境. Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机. 因此,Docker 必须部署在 Linux 内核的系统上.如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境. 在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行…
Git 教程 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换…
Docker 教程 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise…
Git Gitee 大家都知道国内访问 Github 速度比较慢,很影响我们的使用. 如果你希望体验到 Git 飞一般的速度,可以使用国内的 Git 托管服务--Gitee(gitee.com). Gitee 提供免费的 Git 仓库,还集成了代码质量检测.项目演示等功能.对于团队协作开发,Gitee 还提供了项目管理.代码托管.文档管理的服务,5 人以下小团队免费. 接下来我们学习一下如何使用 Gitee. 由于我们的本地 Git 仓库和 Gitee 仓库之间的传输是通过SSH加密的,所以我们…
Docker 架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统.比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统. 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体.容器可以被创建.启动.停止.删除.暂停等. 仓库(Repository):…
Maven 仓库 在 Maven 的术语中,仓库是一个位置(place). Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库. 在 Maven 中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件. Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方. Maven 仓库有三种类型: 本地(local) 中央(central) 远程(remote) 本地仓库 Maven 的本地仓库,在安装 Maven 后并不会创建…
​ ​ Maven 构建生命周期 Maven 构建生命周期定义了一个项目构建跟发布的过程. 一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的: ​ 阶段 处理 描述 验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的 编译 compile 执行编译 源代码编译在此阶段完成 测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试. 包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包 检查 veri…
Docker 仓库管理 仓库(Repository)是集中存放镜像的地方.以下介绍一下 Docker Hub.当然不止 docker hub,只是远程的服务商不一样,操作都是一样的. Docker Hub 目前 Docker 官方维护了一个公共仓库 Docker Hub. 大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现. 注册 在   免费注册一个 Docker 账号. 登录和退出 登录需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全…