镜像

RabbitMQ系列(六)你不知道的RabbitMQ集群架构全解

寵の児 提交于 2020-01-27 17:23:06
前言 本文将系统的介绍一下RabbitMQ集群架构的特点、异常处理、搭建和使用中要注意的一些细节。 知识点 一、为什么使用集群? 二、集群的特点 三、集群异常处理 四、集群节点类型 五、集群搭建方法 六、镜像队列 一、为什么使用集群? 内建集群作为RabbitMQ最优秀的功能之一,它的作用有两个: 允许消费者和生产者在Rabbit节点崩溃的情况下继续运行; 通过增加节点来扩展Rabbit处理更多的消息,承载更多的业务量; 二、集群的特点 RabbitMQ的集群是由多个节点组成的,但我们发现不是每个节点都有所有队列的完全拷贝。 RabbitMQ节点不完全拷贝特性 为什么默认情况下RabbitMQ不将所有队列内容和状态复制到所有节点? 有两个原因: 存储空间——如果每个节点都拥有所有队列的完全拷贝,这样新增节点不但没有新增存储空间,反而增加了更多的冗余数据。 性能——如果消息的发布需安全拷贝到每一个集群节点,那么新增节点对网络和磁盘负载都会有增加,这样违背了建立集群的初衷,新增节点并没有提升处理消息的能力,最多是保持和单节点相同的性能甚至是更糟。 所以其他非所有者节点只知道队列的元数据,和指向该队列节点的指针。 三、集群异常处理 根据节点不无安全拷贝的特性,当集群节点崩溃时,该节点队列和关联的绑定就都丢失了,附加在该队列的消费者丢失了其订阅的信息,那么怎么处理这个问题呢?

Docker-镜像原理之个人理解

旧街凉风 提交于 2020-01-27 16:00:49
一、Docker镜像是什么 轻量级的、可执行的软件包,用来打包软件运行环境和基于运行环境开发的的软件,包含运行某个软件的所有内容,包含代码、运行时、库、环境变量和配置文件 1、UnionFS(联合文件系统) 一种分层、轻量级并且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统时Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件 2、Docker镜像加载原理 docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS bootfs(boot file system)主要包含bootloader和kernel,bootload主要引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。 rootfs(root file system),在bootfs之上

Docker自定义一个Tomcat镜像

一个人想着一个人 提交于 2020-01-27 05:22:09
Docker自定义一个Tomcat镜像 本文是基于CentOS 7.3系统环境,进行Docker的学习和使用 CentOS 7.3 Docker-ce 一、自定义一个Tomcat镜像 (1) 创建一个目录 mkdir -p /data/mydockerfile/tomcat9 (2) 下载Tomcat9和jdk apache-tomcat-9.0.30.tar.gz jdk-8u201-linux-x64.tar.gz cp /root/apache-tomcat-9.0.30.tar.gz /data/mydockerfile/tomcat9 cp /root/jdk-8u201-linux-x64.tar.gz /data/mydockerfile/tomcat9 (3) 编写Dockerfile FROM centos MAINTAINER xuzheng < 601797071@qq.com > COPY readme.txt /usr/local/README.txt ADD jdk-8u201-linux-x64.tar.gz /usr/local ADD apache-tomcat-9.0.30.tar.gz /usr/local RUN yum -y install vim ENV MYPATH /usr/local WORKDIR MYPATH ENV JAVA

Docker最全教程之使用PHP搭建个人博客站点(二十二)

雨燕双飞 提交于 2020-01-27 03:55:45
原文: Docker最全教程之使用PHP搭建个人博客站点(二十二) 目录 官方镜像 编写简单的Hello world! 1. 编写Hello world! 2. 编写Dockerfile 3. 构建并运行 4. 直接使用PHP Docker镜像运行PHP脚本 构建自己的WordPress镜像用于搭建个人博客站点 1. 准备MySQL数据库 2. 跑起来 修改PHP的文件上传大小限制 1. 修改Dockerfile,构建自己的镜像 2. 通过“-v”参数将容器内指定路径映射到主机目录的自定义的配置文件 3. 通过“exec”命令进入容器内部修改相关配置 PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 官方镜像 官方镜像地址: https://hub.docker.com/_/php

Linux内核镜像格式

时光怂恿深爱的人放手 提交于 2020-01-27 01:13:32
1 Linux内核镜像格式   Linux内核有多种格式的镜像,包括vmlinux、vmlinuz,Image、zImage、bzImage、uImage、xipImage、bootpImage等. 1.1 vmlinux   vmlinuz是可引导的、可压缩的内核镜像,vm代表Virtual Memory。Linux支持虚拟内存,因此得名vm。它是由用户对内核源码编译得到,实质是elf格式的文件。也就是说,vmlinux是编译出来的最原始的内核文件,未压缩,比较大。这种格式的镜像文件多存放在PC机上,大约为50MB。 ELF,Executable and Linkable Format,可执行可链接格式,是UNIX实验室作为应用程序二进制接口而发布的,扩展名为elf。可以简单的认为,在elf格式的文件中,除二进制代码外,还包括该可执行文件的某些信息,比如符号表等。 1.2 vmlinuz   vmlinuz是可引导的、压缩过的内核。“vm”代表“Virtual Memory”。vmlinuz是可执行 的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。vmlinuz的建立有两种方式: 一是编译内核时通过“make zImage”创建,手动拷贝到/boot目录下面。zImage适用于小内核的情况,它的存在是为了向后的兼容性。 二是内核编译时通过命令make

PouchContainer 容器技术演进助力阿里云原生升级

喜夏-厌秋 提交于 2020-01-27 00:56:08
我们从 2016 年开始在集团推广全面的镜像化容器化,今年是集团全面镜像化容器化后的第 4 个 双11,PouchContainer 容器技术已经成为集团所有在线应用运行的运行时底座和运维载体,每年 双11 都有超过百万的 PouchContainer 容器同时在线,提供电商和所有相关的在线应用平稳运行的载体,保障大促购物体验的顺滑。 我们通过 PouchContainer 容器运行时这一层标准构建了应用开发和基础设施团队的标准界面,每年应用都有新的需求、新的变化,同时基础设施也有上云/混部/神龙/存储计算分离/网络变革这些升级,两边平行演进,互不干扰。技术设施和 PouchContainer 自身都做了很大的架构演进,这些很多的架构和技术演进对应用开发者都是无感知的。 在容器技术加持的云原生形成趋势的今天,PouchContainer 容器技术支持的业务方也不再只有集团电商业务和在线业务了,我们通过标准化的演进,把所有定制功能做了插件化,适配了不同场景的需要。除了集团在线应用,还有运行在离线调度器上面的离线 job 类任务、跑在搜索调度器上面的搜索广告应用、跑在 SAE/CSE 上面的 Serverless 应用、专有云产品及公有云(ACK+CDN)等场景,都使用了 PouchContainer 提供的能力。 运行时的演进 2015 年之前,我们用的运行时是 LXC

docker的安装与基本要求

百般思念 提交于 2020-01-26 23:07:26
1.使用docker的基本要求 内核版本必须要在3.10以上或相同,查看uname -r 在centos6中安装docker(现在基本都使用centos7) 两种方法,安装一台新的虚拟机。 升级内核 从Docker官方下载安装。 下载 选择centons的docker 要安装docker需要安装这三种,但主要有docker-ce 服务端 Docker-ce-cli客户端 containerd.Io容器 若不指定版本,下载的是最新版本 网页路径 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 在docker配置本地yum源 Gpgchekc=0 检查yum源与一些库 Enabled=1 启动 yum repolist 因为网址的缘故 去掉 Packages/ 在次使用命令 yum repolist (查看是否有docker安装包) yum -y install docker-ce (镜像如也是在官方下载的,也需要在美国下载) 最新版本docker(因默认下载最新 ) 因网速原因,所以可以采取从国内下载。国内很多网站都提供了docker-ce的镜像站,比如说阿里云,网易云,清华大学镜像站等,这里从阿里云下载。 去掉本地yum源 rm -rf /etc/yum.repos.d/docker.repo

docker的安装与基本要求

你离开我真会死。 提交于 2020-01-26 23:07:10
1.使用docker的基本要求 内核版本必须要在3.10以上或相同,查看uname -r 在centos6中安装docker(现在基本都使用centos7) 两种方法,安装一台新的虚拟机。 升级内核 从Docker官方下载安装。 下载 选择centons的docker 要安装docker需要安装这三种,但主要有docker-ce 服务端 Docker-ce-cli客户端 containerd.Io容器 若不指定版本,下载的是最新版本 网页路径 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 在docker配置本地yum源 Gpgchekc=0 检查yum源与一些库 Enabled=1 启动 yum repolist 因为网址的缘故 去掉 Packages/ 在次使用命令 yum repolist (查看是否有docker安装包) yum -y install docker-ce (镜像如也是在官方下载的,也需要在美国下载) 最新版本docker(因默认下载最新 ) 因网速原因,所以可以采取从国内下载。国内很多网站都提供了docker-ce的镜像站,比如说阿里云,网易云,清华大学镜像站等,这里从阿里云下载。 去掉本地yum源 rm -rf /etc/yum.repos.d/docker.repo

搭建Docker环境

廉价感情. 提交于 2020-01-26 22:28:25
1.安装与配置 Docker 安装 Docker 首先安装 Docker 必要依赖包 : yum install -y yum-utils device-mapper-persistent-data lvm2 由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 用 yum 安装 Docker: yum install -y docker-ce 直接yum安装,安装成功后查看版本 docker -v 启动docker service docker start 设置开机启动 chkconfig docker on 配置 Docker 因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub 依次执行以下命令 echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker systemctl daemon-reload service docker restart 2.Docker 的简单操作 下载镜像

centos7使用docker安装es(elasticsearch)

老子叫甜甜 提交于 2020-01-26 19:08:12
1、安装docker依赖(已安装可以不用安装) yum install -y docker    2、搜索镜像 docker search elasticsearch   如果出现以下报错 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 执行以下代码 systemctl daemon-reload sudo service docker restart 3、拉取镜像(我这里拉取的是5.6版本的) docker pull elasticsearch:5.6 4、查看镜像 [root@host1 bin]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/elasticsearch 5.6 752be83a5396 10 months ago    5、启动镜像(我在这里使用了 -e 限制内存大小 752be83a5396是上面查询的镜像ID) docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name es01 752be83a5396    6