docker是linux容器的一種封裝,提供簡單易用的容器使用接口,是最流行的linux容器解決方案。docker的接口至關簡單,用戶能夠方便地建立和銷燬容器。docker將應用程序與程序的依賴,打包在一個文件裏面,運行這個文件就會生成一個虛擬容器。程序運行在虛擬容器裏面,如同在真實物理機上運行同樣,能夠解決環境配置的難題。python
linux容器不是模擬一個完整的操做系統,而是對進程進行隔離,在正常的進程外面套一個保護層,對於容器裏面的進程來講,它接觸到的資源都是虛擬的,從而實現和底層系統的隔離。linux
容器裏面的應用,直接就是底層系統的一個進程,而不是虛擬機內部的進程。因此,啓動容器至關於啓動本機的一個進程,而不是啓動一個操做系統,速度快不少。docker
容器只佔用須要的資源,不佔用那些沒有用的資源;而虛擬機是完整的操做系統,不可避免要佔用全部資源。此外,多個容器能夠共享資源,虛擬機都是獨享資源。json
容器只要包含用到的組件便可,而虛擬機是整個操做系統的打包,因此容器文件比虛擬機文件小不少。安全
綜上所說,容器能夠理解爲輕量級的虛擬機,可以提供虛擬化的環境,成本開銷小得多。bash
容器 不須要進行硬件虛擬以及運行完整的操做系統等額外開銷,因此不管是應用執行速度、內存損耗或者文件存儲速度,都比傳統虛擬技術更高效。架構
傳統的虛擬機技術啓動應用服務每每須要數分鐘,而docker容器應用直接運行於宿主機內核,不須要啓動完整的操做系統,能夠作到秒級、甚至毫秒級的啓動時間,大大節約了開發、測試和部署的時間。運維
開發過程當中一個常見的問題是環境一致性問題。docker鏡像提供了除內核外完整的運行環境,確保了應用運行環境的一致性。curl
使用docker能夠經過定製應用鏡像來實現持續繼承、持續交付、部署。開發人員能夠經過dockerfile來進行鏡像構建,並結合、持續繼承系統進行繼承測試;而運維人員能夠直接在生產環境中快速部署該鏡像,甚至結合持續部署系統進行自動部署。測試
docker確保了執行環境的一致性,故應用的遷移更加容易。不管是在物理機、虛擬機、公有云、私有云,甚至是筆記本,運行結果都是一致的。所以,用戶能夠很輕易的在一個平臺上運行應用,遷移到另外一個平臺上,不用擔憂運行環境的變化致使應用沒法正常運行。
docker的整個生命週期就是這三個概念。
下載docker
yum install docker -y
配置docker鏡像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
加速器修改的是 /etc/docker/daemon.json
文件。
重啓docker服務
systemctl restart docker
注意:重啓以前須要修改一個配置文件。
cat /etc/docker/daemon.json # 去掉{}裏面的逗號就行 {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}