容器技术

docker常见使用笔记

亡梦爱人 提交于 2019-12-09 15:59:20
Docker 1、简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 ![](/images/01.png) ![](/images/02.png) 2、核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker守护进程(daemon): 一般在宿主主机后台运行,等待接收来自客户端的消息。 docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 ![](/images/03.png) 使用Docker的步骤: 1)、安装Docker 2)、去Docker仓库找到这个软件对应的镜像; 3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; 4)、对容器的启动停止就是对软件的启动停止。 3、安装Docker 1)、安装linux虚拟机 ​ 1)、VMWare

Docker缩短新开发者熟悉项目时间的五个方面

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-09 14:59:14
本文介绍了如何使用 Docker容器 来减少新员工入职加入团队的准备启动时间的五个方法,包括Docker容器是唯一的依赖、容易知道如何构建环境、跨机器的便携性、一致性的开发环境以及轻量级的环境。   无论公司规模大小,加入新的开发者并且想要让其尽快达到能够干活的程度,仍然是一个显著的挑战。新开发者被雇佣和生产(作者所谓的生产可以看“注1”)的时间越长,需要耗费的时间就越长,尤其是一些经验丰富的开发者。   鉴于此,有效的入职工作流程有两个需要考虑关键的问题:   · 如何将从新人坐下到熟悉项目的时间缩短到尽可能小?   · 新员工如何尽快进入状态?   实际上,一个更好的问题是:无论开发人员是刚刚到公司还是刚刚接触一个项目,我们该如何让他们尽快熟悉项目并进行开发?   *注【1】:本文中,所谓生产可以理解为添加新功能,修复现有bug,或者能够调研安装开发过程需要用到的代码库。   有很多技术可以用来解决上述问题,包括shell脚本、WAMP、MAMP和LAMP 堆栈技术以及虚拟机,但是我发现最引人注目的是Docker。Docker是DevOps世界中众所周知的新生儿,它最新的一系列技术,旨在使项目能够从开发环境平滑地过滤到生产环境。   当然,Docker能够让你比较容易接触新技术,并且让你觉得它无所不能。 然而,Docker真的特别擅长减少新开发人员的新人时间(从入职到能干活)

docker基础知识

旧时模样 提交于 2019-12-09 14:09:15
/*--> */ /*--> */ Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。 Docker技术的三大核心概念,分别是: 镜像(Image) 容器(Container) 仓库(Repository) 简单理解三者的对应关系: 其中,dockerfile是一种被docker程序解释的脚本,有一条一条的指令组成,每条指令对应Linux下的一条命令,docker程序解析这些命令间的依赖关系,根据指令生成定制的image。 常用命令: docker images #列出所有本地的docker images docker pull {REPOSITORY}:{TAG} #如docker pull dockerhub.xxx.com/rdb:cr 根据仓库名和标签拉取最新的docker 镜像 docker rmi IMAGE_ID #删除指定的images docker ps -a #显示所有的docker,包含不运行的;不使用-a则只显示正在运行的docker 使用docker ps -a查看docker images ,再使用 docker port container ID 可以查看该容器的端口映射情况 docker run {REPOSITORY}:{TAG} #启动docker 容器 docker start container ID #start docker

Spring常用注解说明

让人想犯罪 __ 提交于 2019-12-09 01:13:12
注意: 在使用注解之前需要在Spring配置文件中配置以下内容开启注解扫描。 <context:component-scan base-package="cn.test"/> @Service用于标注业务层组件。 @Controller用于标注控制层组件(如struts中的action)。 @Repository用于标注数据访问组件,即DAO组件。 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下: @Autowired和 @Qualifier("personDaoBean") 存在多个实例时配合使用。 @Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 @Required注解适用于bean属性的setter方法并且它指示,受影响的bean属性必须在配置时被填充在XML配置文件中,否则容器将抛出BeanInitializationException 例外。 实现依赖注入时执行顺序的概括: @Autowired 1. 匹配类型 2. 根据Qualifiers注解设置的名称 3. 根据名称 @Resource 1. 根据名称 2. 根据类型 3. Qualifiers无效

Mac上Docker使用例子(本人亲自测试通过)

扶醉桌前 提交于 2019-12-09 00:19:56
Docker 是 2014 年最为火爆的技术之一,几乎所有的 程序员 都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结。 我们先来回顾一下传统虚拟化技术的体系架构: 可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,安装自己所需的应用程序了。这一切看似非常简单,但其中的技术细节是相当高深莫测的,大神级人物都不一定说得清楚。 凡是使用过虚拟机的同学,应该都知道,启动虚拟机就像启动一台计算机,初始化过程是相当慢的,我们需要等很久,才能看到登录界面。一旦虚拟机启动以后,就可以与宿主机建立网络连接,确保虚拟机与宿主机之间是互联互通的。不同的虚拟机之间却是相互隔离的,也就是说,彼此并不知道对方的存在,但每个虚拟机占用的都是宿主机的硬件与网络资源。 我们再来对比一下 Docker 技术的体系架构吧: 可见

Docker简介

偶尔善良 提交于 2019-12-09 00:02:42
1. 虚拟化 1)什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间 的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚 拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计 算能力和资料存储。 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的 硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充 分利用 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、 桌面虚拟化、服务虚拟化、虚拟机等等。 2)虚拟化种类 1)全虚拟化架构 虚拟机的监视器(hypervisor)是类似于用户的应用程序运行在主机的 OS 之上,如 VMware 的 workstation,这种虚拟化产品提供了虚拟的硬件。 2)OS层虚拟化架构 3)硬件层虚拟化 硬件层的虚拟化具有高性能和隔离性,因为 hypervisor 直接在硬件上运行,有利于控制 VM 的 OS 访问硬件资源,使用这种解决方案的产品有 VMware ESXi 和 Xen server Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层

Docker学习笔记

ⅰ亾dé卋堺 提交于 2019-12-09 00:01:17
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 官网:https://www.docker.com/ 相关资料: 1、Docker入门教程 http://dockone.io/article/111 2、Docker_百度百科 http://baike.baidu.com/view/11854949.htm 3、史上最全Docker资料集粹 http://special.csdncms.csdn.net/BeDocker/ 4、Docker - 话题精华 - 知乎 http://www.zhihu.com/topic/19950993/top-answers 5、docker 简明教程 | 简果网 http://www.simapple.com/docker-tutorial 6、如何使用Dockerfile构建镜像 http://blog.csdn.net/qinyushuang/article/details/43342553 7、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/ Docker与虚拟机比较

通过构建微服务来学习Docker

别来无恙 提交于 2019-12-08 23:57:58
如果你正在寻找练手机会以便深入学习Docker,那么本文就是你最好的选择。在本文中,我将展示Docker是如何工作的,以及应用Docker完成构建一个基本的微服务开发任务。 我们将使用一个简单的Node.js服务与一个MySQL后端为例,实现从本地运行的代码迁移到容器化运行的微服务和数据库。 什么是Docker? 它的核心就是:Docker是一个允许你创建镜像(这包含了很多步骤,就像在虚拟机的模板一样)并且让这个镜像的实例运行在容器中的软件。 Docker维护着一个巨大的镜像资源库,我们称之为Docker Hub,我们可以使用它作为我们自己镜像存储的出发点。可以按照Docker,选择任意我们希望使用的镜像,然后在一个容器中执行这个镜像的实例。 安装Docker 为了继续学习和使用本文章的以下内容,第一步你需要安装Docker。 以下是基于你的平台的安装指南docs.docker.com/engine/installation. 假如是在使用Mac或者Windows,那么你可以考虑使用虚拟机。在Mac OS X上用的是Parallels来运行Ubuntu以支持大多数的开发活动。这种方式对于在各种实验中拍摄快照,中断以及恢复时是非常方便的。 试验开始 输入以下命令: docker run - it ubuntu 很快你就将会看到以下的命令提示符: root @719059da250d

Docker部署Spring cloud微服务详细讲解 (一)

﹥>﹥吖頭↗ 提交于 2019-12-08 23:54:36
一、为什么要使用Docker部署Spring Cloud项目 说目前最流行的java开发方式就是Spring Boot和Spring Cloud应该不为过。Spring Boot进一步加强了“约定大于配置”这一Spring的中心思想,使得我们开发人员能够更快捷,更便利的开发Spring项目,也使得开发java web变得不再那么费劲。而Spring Cloud的出现更是让我们项目的开发有了更多的选择,Spring Cloud集成并封装netfix中的ribbon,eureka,hystrix,feign和zull等十分出色的项目,为我们提供了服务注册与发现,客户端的负载均衡和路由分发等功能,为现在的大部分中小企业开发分布式架构提供了一整套的解决方案,大大提高了工作效率,个人认为Spring Cloud在未来一定会像Spring一样的出色。而Docker的出现让容器化技术得以普及,更快的部署和维护与Spring Cloud的结合,能让我们不再像以前一样为了某一个模块的增加而服务器上大动干戈,还需要考虑环境的问题,现在只需要一句docker start .....便可轻松实现服务的扩展。 二、如何使用Docker来部署Spring Cloud项目 Spring Cloud项目必须基于Spring Boot项目来开发,所以这里讲解Spring Boot项目的部署,Spring

Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅

孤者浪人 提交于 2019-12-08 23:47:12
通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个应用。 Docker 是一个过去两年来从某个 idea 中孕育而生的有趣技术,公司组织们用它在世界上每个角落来部署应用。在今天的文章中,我将讲述如何通过“Docker 化Dockerize”一个现有的应用,来开始我们的 Docker 之旅。这里提到的应用指的就是这个博客! 什么是 Docker? 当我们开始学习 Docker 基本概念时,让我们先去搞清楚什么是 Docker 以及它为什么这么流行。Docker 是一个操作系统容器管理工具,它通过将应用打包在操作系统容器中,来方便我们管理和部署应用。 容器 vs. 虚拟机 容器和虚拟机并不完全相似,它是另外一种提供 操作系统虚拟化 的方式。它和标准的虚拟机还是有所不同。 标准的虚拟机一般会包括一个完整的操作系统、操作系统软件包、最后还有一至两个应用。这都得益于为虚拟机提供硬件虚拟化的管理程序。这样一来,一个单一的服务器就可以将许多独立的操作系统作为虚拟客户机运行了。 容器和虚拟机很相似,它们都支持在单一的服务器上运行多个操作环境,只是,在容器中,这些环境并不是一个个完整的操作系统。容器一般只包含必要的操作系统软件包和一些应用