Docker 是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不会有任何接口。html
Docker主要解决什么问题?
Docker经过将运行环境和应用程序打包到一块儿,来解决部署环境依赖问题,真正作到跨平台的分发和使用。python镜像(Image)
Docker镜像是一个容器的文件系统,提供容器运行时所需的程序、库、资源、配置等文件和运行时须要的一些配置参数( 如匿名卷、环境变量、用户等)。
Docker镜像是只读的,不包含任何动态数据,其内容在构建以后也不会被改变。
Docker利用UnionFS技术,设计为分层存储的架构,Docker镜像由多层文件系统联合组成。
镜像构建时,会一层层构建,每一层尽可能只包含该层须要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在本身这一层。git容器(Container)
Linux的CGroup技术用来限定一个进程的资源使用,Namespace技术用来划分不一样的命名空间。
容器的实质是进程,是基于CGroup技术和Namespace技术运行在操做系统上的一个拥有受限资源和单独命名空间的进程。
容器拥有本身的文件系统、网络配置、进程空间,甚至用户ID空间。
每个容器运行时,是以镜像为基础层,在其上建立一个当前容器的存储层。当容器运行时,会在镜像之上再加上一层可读可写层。github容器存储层的生存周期和容器同样,容器消亡时,容器存储层也随之消亡。所以,任何保存于容器存储层的信息都会随容器删除而丢失。
但数据卷(Volume)的生存周期独立于容器,容器消亡,数据不会丢失,因此文件写入操做应该使用数据卷( Volume)。web仓库(Repository)
Docker Registry是提供集中的存储、分发镜像的服务。
一个 Docker Registry 中能够包含多个仓库( Repository) ;每一个仓库能够包含多个标签( Tag) ;每一个标签对应一个镜像。
经过 <仓库名>:<标签> 格式指定具体镜像。若是不给出标签,将以 latest 做为默认标签。dockerDocker Registry 公开服务是开放给用户使用、容许用户管理镜像的 Registry 服务。
最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry。
国内也有相似Docker Hub 的公开服务。例如:网易云镜像服务、DaoCloud镜像市场、阿里云镜像库等。
用户还能够在本地搭建私有 Docker Registry。数据库Docker加速器
Docker加速器是指国内的一些云服务商提供了针对 Docker Hub 的镜像服务( Registry Mirror)。
使用加速器会直接从国仓库内的地址下载 Docker Hub 的镜像。centos容器的UUID
UUID -- 通用惟一标识符(Universally Unique Identifier)
容器有三种方式来进行标识:长UUID、短UUID、Name。
UUID 是 Docker daemon 产生的,在一台主机上是惟一的,在建立容器的时候能够经过--name 来指定容器的名字,若是不指定会自动分配一个字符串名称。
经过docker ps、docker inspect等命令能够查看到容器的标识信息。浏览器Docker的优点
- 更高效的系统资源利用。Docker容器不须要进行硬件虚拟以及运行完整操做系统等额外开销
- 更快速的启动时间。Docker容器应用直接运行于宿主内核,无需启动完整的操做系统。
- 一致的运行环境。Docker镜像提供除内核外完整的运行时环境。
- 更轻松的迁移。执行环境的一致性,迁移应用更加容易。
- 更便利的持续交付和部署。一次建立或配置,任意环境正常运行。
- 更轻松的维护和扩展。Docker的分层存储以及镜像技术,复用、维护和扩展更简单。
本文环境:阿里云ECS Centos7.3服务器
1.安装Docker:
yum install docker运行docker --version能够查看版本号并确认是否安装成功。
2.安装Docker-compose:
Compose是用于定义和运行复杂Docker应用的工具。你能够在一个文件中定义一个多容器的应用,而后使用一条命令来启动你的应用,而后全部相关的操做都会被自动完成。
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
运行docker-compose --version查看版本号并肯定是否安装成功
3.启动Docker服务:
service docker start
4.经常使用Docker命令:
查看docker版本:docker version 显示docker系统的信息:docker info 检索image:docker search image_name 下载image : docker pull image_name 已下载镜像列表: docker images 删除镜像: docker rmi image_name 启动容器:docker run image_name
官网介绍:Sentry是一个实时事件日志记录和聚集的日志平台,其专一于错误监控,以及提取一切过后处理所需的信息。他基于Django开发,目的在于帮助开发人员从散落在多个不一样服务器上的日志文件里提取发掘异常,方便debug。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等。它分为客户端和服务端,客户端就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。
sentry是一个强大的分布式报错信息收集平台,图形化程度很高,能够帮助咱们直观的发现当前部署的系统存在哪些问题。
更多介绍请看官网:https://sentry.io/
github:https://github.com/getsentry/sentry
在github上有一万多star,证实了它的优秀之处。
1.准备工做
官方提供了两种部署方式:
a. python
b. docker
可是最新官方已弃用python方式安装,而是提倡使用docker安装,因此咱们使用docker方式来安装sentry服务端。
2.Dependencies
- docker版本须要在1.10+
- docker-compose
3.按照官方文档进行一下操做:https://docs.sentry.io/server/installation/docker/
按照文档第一步先去克隆 https://github.com/getsentry/onpremise 获取sentry
- setp1 克隆 git clone https://github.com/getsentry/onpremise.git 按照remind.md 一步步操做
- setp2 构建容器并建立数据库和sentry安装目录 mkdir -p data/{sentry,postgres}
- setp3 生成secret key并添加到docker-compose文件里 docker-compose run --rm web config generate-secret-key
- setp4 第四步时间有点长。其间会提示建立superuser,用户名是一个邮箱,这个邮箱从此会收到sentry相关的消息,口令能够随便设置,只要本身记得住就能够了。最后会在命令行输出一串乱七八糟的字符,这个就是secretkey,将这串字符复制到docker-compose.yml文件中并保存。
![]()
- setp5 重建数据库,并建立sentry超级管理员用户 sudo docker-compose run --rm web upgrade 建立用户,sentry新建的时候须要一个超级管理员用户
![]()
- step 6.启动全部的服务 docker-compose up -d
能到这里的话,你已经成功大半 了,恭喜。
能够运行 docker ps 查看正在运行的容器,接下来在浏览器中打开http://IP:9000 进行访问你的sentry后台了。
新建一个项目,选择客户端项目语言,我这儿是C#,能够参考https://github.com/getsentry/raven-csharp
新建控制台程序,经过nuget添加 SharpRaven
添加测试代码:
var ravenClient = new RavenClient("" ); try{
int i2 = 0 ; int i = 10 / i2; } catch (Exception exception) { ravenClient.Capture(newSentryEvent(exception)); }
接下来在面板上应该能够看见刚刚测试的exception
到这儿,基本都已经安装完毕,更多用法请参考官方文档
安装这个也是花费了很多时间,毕竟一开始对 centos以及docker 都是小白,看了很多文章以及走了很多弯路,好在最后鼓捣出来了。
转载请注明出处 IT胡小帅:http://www.cnblogs.com/CallMeUncle/p/6843513.html