容器技术

Docker 配置网络 - 使用 bridge 网络

雨燕双飞 提交于 2019-12-04 08:19:09
就网络而言,桥接网络(bridge network,也叫网桥)是一种链路层设备,用于转发网段之间的流量。 bridge 可以是硬件设备或在主机内核中运行的软件设备。 对 Docker 而言,桥接网络使用允许容器连接到同一个桥接网络来通信的软件网桥,同时提供与未连接到该桥接网络的容器的隔离。Docker bridge 驱动程序自动在主机中安装规则使不同桥接网络上的容器不能直接相互通信。 桥接网络用于在同一个 Docker 守护进程上运行的容器通信。对于不同 Docker 守护进程的容器,可以在操作系统层级管理路由或使用 overlay 网络来实现通信。 启动 Docker 时,会自动创建默认的桥接网络,新启动的容器如果没有特别指定都会连接到这个默认桥接网络。也可以创建用户自定义的桥接网络,且用户自定义的桥接网络比默认的优先级要高。 1. 用户自定义 bridge 和默认 bridge 的差别 1.1 用户定义网桥提供更好的隔离和容器化应用之间的互操作性 连接到同一个用户自定义网桥的容器会自动互相暴露所有端口,并且不会暴露到外部。这会让容器化应用之间的通信更方便,而不会意外开放进入外部世界。 假设一个应用包含 web 前端和数据库后端。外部需要访问前端(可能是 80 端口),但是只有前端需要访问数据库后端。使用用户自定义网桥,只需要将前端的端口暴露到外部,数据库应用不需要开启任何端口

Docker容器安装

别说谁变了你拦得住时间么 提交于 2019-12-04 08:18:53
什么时容器 容器技术已经成为应用程序封装和交付的核心技术 容器技术的核心有以下几个内核技术组成 CGroups(Control Groups)-资源管理 NameSpace-进程隔离 SELinux安全 由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速 信号隔离、网络隔离、主机名隔离 ps只能看见自己的进程 什么是Docker Docker是完整的一套容器管理系统 Docker提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术 Docker优点 相比于传统的虚拟化技术,容器更加简洁高效 传统虚拟机需要给每个VM安装操作系统 容器使用的共享公共库和程序 vm container appa appb appc appa appb appc bins/libs bins/libs bins/libs bins/libs bins/libs bins/libs cuest os guest os guest os docker hypervisor Host OS infrastructure infrastructure Docker的特点 容器的隔离性没有虚拟化强 共用Linux内核,安全性有先天缺陷 SELinux难以驾驭 监控容器和容器排错是挑战 部署Docker 安装软件 需要64位的操作系统 至少RHEL6.5以上的版本

docker的基本配置&操作

纵饮孤独 提交于 2019-12-04 08:13:11
1.简介: Docker 是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 docker就是一个容器,只是这个容器是一种类似于胶囊房一般的存在,类似于操作系统但是却比操作系统更加的轻量级而已。 2.核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 docker hug这个官网目前是很难打开的,应该是被封了,但是我们需要的镜像又不能不去下载,后面我会介绍两种方法去下载镜像 3.Centos7上安装docker 1、检查内核版本,必须是3.10及以上(必须的要求) uname -r 2、安装docker yum install docker 3.启动命令 [yue@dearyue ~]$ systemctl start docker ====

Docker 基础介绍及配置安装 [一]

人走茶凉 提交于 2019-12-04 08:08:41
Docker 基础介绍及配置安装 [一] 标签(空格分隔): Docker 时间:2016年11月2日 博客:www.abcdocker.com 微信公众号:abcdocker 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Docker介绍   Docker是 Docker.lnc 公司开源的一个基于 LXC技术 之上构建的 Container容器引擎 ,源代码托管在 Github 上,基于Go语言并遵从 Apache2.0 协议开源   Docker是通过 内核 虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率 Docker的三大理念   构建  运输  运行 Docker组成 Docker的组成部分 docker类似于cs结构  Docker Client  Docker Server 我们可以将 docker启动 比喻成 Docker server ,我们执行命令的时候相当于 Docker client 提示: 目前的版本是如果docker的 服务端 挂了,运行在docker上的所有 容器 都会挂掉 Docker组件

Docker分层原理与内部结构

点点圈 提交于 2019-12-04 07:54:47
转自:1 : https://www.csdn.net/article/2015-08-21/2825511 2: http://blog.51cto.com/wzlinux/2044797 第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角。例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的。 以上内容是从宏观的角度看看Docker镜像是什么,我们再从微观的角度进一步深入 Docker镜像。刚才提到了“Debian镜像中安装MySQL 5.6,就成了mysql:5.6镜像”,其实在此时Docker镜像的层级概念就体现出来了。底层一个Debian操作系统镜像,上面叠加一个 mysql层,就完成了一个mysql镜像的构建。层级概念就不难理解,此时我们一般debian操作系统镜像称为mysql镜像层的父镜像。 Docker有两方面的技术非常重要,第一是Linux 容器方面的技术,第二是Docker镜像的技术。从技术本身来讲,两者的可复制性很强,不存在绝对的技术难点,然而Docker Hub由于存在大量的数据的原因,导致Docker

五分钟学GIS | 自己动手做Docker镜像

╄→尐↘猪︶ㄣ 提交于 2019-12-04 07:47:40
在上一期五分钟学GIS中,我们学习了Docker的安装与使用,本期将继续Docker这个主题,来了解一下如何制作自己的Docker镜像。 1.制作镜像的方法 本文所提到的制作镜像是指在一个已有的镜像容器中进行修改,从而创建一个新的符合个人目标的镜像。Docker提供了两种镜像制作的方法。 第一种使用docker commit 命令来创建镜像 ,主要步骤如下: 1)通过docker run命令启动容器 2)修改docker镜像内容 3)docker commit提交修改的镜像 4)验证。查看镜像,并启动新的容器 第二种通过Dockerfile来创建镜像 ,主要步骤如下: 1)新建一个空目录和一个Dockerfile文件。 2)编写Dockerfile文件。Dockerfile包含创建镜像所需要的全部指令。 3)基于在Dockerfile中的指令,使用Docker build命令来创建镜像 两种镜像创建方式的对比如下表,具体选择哪种方法来制作镜像需要结合实际情况来选择。 2.镜像制作示例 需求: GIS服务器使用SuerMap iServer,在此基础上扩展了查找距离点最近的道路线的自定义GIS服务,为了方便这套GIS服务器后续部署和迁移工作,制作一个镜像文件。 操作环境: ubuntu14,安装了docker engine,下载了SuperMap iServer的镜像文件

Docker镜像原理和最佳实践

烈酒焚心 提交于 2019-12-04 07:41:18
镜像 传统企业是以交付应用的方式进行发布的,交付应用相当于可执行性程序,其整个应用与环境是分开维护的。随着容器技术的兴起,提出了交付环境的概念。交付环境与交付应用相比,交付的不仅是可执行程序,还交付可执行程序依赖的配置文件、类库甚至是整个文件系统。在Docker语境里面,环境就是镜像。从上图左下角镜像示例图可以看出,镜像本身的组织结构是分层的。其优点是,虽然它包含了所有的依赖,但是发布部署的时候不会显著增加信息的传输量。 镜像的表示分为四部分:红色的部分是镜像中心域名,黄色的部分是镜像命名空间,我们可以根据命名空间进行权限控制等操作,绿色是镜像的名称,每个镜像有一个版本(即标签)。Docker官方的镜像不需要镜像中心的域名,有一些镜像可以省略命名空间。 镜像基本操作 镜像制作——Dockerfile 第一行是一个FROM指令,使用了一个叫alpine的基础镜像。所有的镜像都可以用来做基础镜像,我们通常不需要关心最基础的镜像是怎么来的,只需要在现有镜像的基础上,构建新的镜像即可。我们在构建的时候,Docker依赖这个基础镜像,在这个基础镜像之上我们再做一些改动,生产新的镜像。FROM指令必须要有,而且只能有一个,通常是放在整个Dockerfile的最前面。 RUN 指令做的是在镜像里安装一些软件,或者做一些需要的操作。Docker RUN之后执行了Shell指令

微服务解决方案

◇◆丶佛笑我妖孽 提交于 2019-12-04 06:04:55
一、微服务架构演进过程 近年来我们大家都体会到了互联网、移动互联带来的好处,作为IT从业者,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的IT建设也是迫切需要转型,需要面向外部客户,我们也需要应对外部环境的快速变化、需要快速创新,那么我们的IT架构也需要向互联网企业学习作出相应的改进,来支撑企业的数字化转型。 我们再看一下应用架构的演进过程,回忆一下微服务架构是如何一步一步进化产生的,最早是应用是单块架构,后来为了具备一定的扩展和可靠性,就有了垂直架构,也就是加了个负载均衡,接下来是前几年比较火的SOA,主要讲了应用系统之间如何集成和互通,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。 微服务架构的基本思想就是“围绕业务领域组件来创建应用,让应用可以独立的开发、管理和加速”。 二、微服务架构的好处 我们总结了四个方面的优点,分别如下: 是每个微服务组件都是简单灵活的,能够独立部署。不再像以前一样,应用需要一个庞大的应用服务器来支撑。 可以由一个小团队负责更专注专业,相应的也就更高效可靠。 微服务之间是松耦合的,微服务内部是高内聚的,每个微服务很容易按需扩展。 微服务架构与语言工具无关,自由选择合适的语言和工具,高效的完成业务目标即可。 看到这里,大家会觉得微服务架构挺不错

使用Docker还是Rocket?也许可以一起来。

…衆ロ難τιáo~ 提交于 2019-12-04 04:57:23
本文转自 DockerOne 在2014年接近尾声的时候,CoreOS 发布了与Docker类似的引擎Rocket ,并声称Docker的处理模型有着“根本性的缺陷”。虽然CoreOS的创始人Alex Polvi软化了立场,但他也坚持自己的基本观点,他认为Docker不再是构建系统的最佳组件。 容器技术最近异军突起,所以也容易理解为什么Polvi这么积极地跑马圈地,因为容器之争才刚刚开始。不过,不知道供应商之间这样来回的争吵是否会吓跑那些想要采用容器技术的企业,他们是否会想等到争论尘埃落定时再选择使用哪个容器。 平台 vs. 组件 CoreOS的Plovi和Docker的创始人Solomon Hykes在一点上有着共识: Rocket和Docker实际上不是竞争关系 。 Hykes说 ,Rocket“实际上是Libcontainer的竞争对手”,而不是整体Docker平台的竞争对手。 Libcontainer 是“为容器制定配置选项”的库,它对于Docker至关重要,它也是社区的努力结果,能帮助定义容器的未来。 正如InforWorld的 Serdar Yegulap所写 ,Libcontainer非常重要。但是Plovi显然觉得Docker忘记了它当初的愿望而想去做更多的事情:平台。 Polvi 说: Docker一开始是用来构建平台的组件,一个构建模块

DOCKER学习_001:Docker简介

纵然是瞬间 提交于 2019-12-04 03:35:48
一 Docker简介 1.1 docker由来 Docker的英文翻译是“码头工人”,即搬运工,它搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App。我们的开发人员可以通过Docker将App变成一种标准的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。 从概念上来看,Docker和传统的虚拟机比较类似,只是更轻量级,更方便使用。Docker和虚拟机最主要的区别有以下几点: 虚拟化技术依赖的是物理CPU和内存,是硬件级别的;Docker是构建在操作系统层面的,复用操作系统的容器化技术,所以Docker同样可以运行在虚拟机上面。 虚拟机中的操作系统是一个完整的操作系统镜像,比较复杂;而Docker比较轻量级,我们可以用Docker部署一个独立的redis,就类似于在虚拟机当中安装一个redis应用,但Docker部署的应用是完全隔离的。 传统的虚拟机技术是通过快照来保存状态的;而Docker引入了类似于源码管理的机制,将容器历史版本一一记录下来,切换成本非常之低。 传统的虚拟化技术在构建系统的时候非常复杂;而Docker可以通过一个简单的Dockerfile文件来构建整个容器,更重要的是Dockerfile可以手动编写,这样应用程序开发都可以通过发布Dockerfile来定义应用的环境和依赖,对于持续交付非常有利。