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