一、什么是Docker
Docker是基於GO語言實現的開源容器項目,誕生於2013年年初,最初發起者是dotCloud公司,Docker項目已經加入了Linux基金會,並遵循apache2.0協議,全部代碼開源在github上,docker的構想是要實現"Build ship and run any,anywhere",即通過對應用的封裝、分發、部署、運行 生命周期進行管理,達到應用組件"一次封裝,到處運行"的目的。
Docker是一種容器虛擬化,Docker容器可以理解為一種輕量級的沙盒,每個容器內運行着一個應用,不同的容器相互隔離,容器之間也可以通過網絡互相通信,也可以說docker就是輕量級及互相隔離應用的虛擬化技術
二、Docker的優勢
更快的交付和部署
更高效的資源利用
更輕松的遷移和擴展
更簡單的更新管理
docker容器很快,啟動和停止可以在秒級實現
docker容器對系統資源需求很少,一台主機上可以同時運行數千個容器
docker通過類型git設計理念的操作來方便用戶獲取、分發、更新應用鏡像,存儲復用,增量更新
docker利用Linux系統上的多種防護技術實現了嚴格的隔離可靠性,並且可以整合眾多的安全工具
三、Docker容器技術和傳統虛擬機技術的區別
傳統的方式是在硬件層面實現虛擬化,需要有額外的虛擬機管理應該和虛擬機操作系統層
docker容器是在操作系統層面上實現的虛擬化,直接復用本地主機的操作系統,因此更加的輕量級
四、Docker核心三大概念
docker的大部分操作都是圍繞着它的三大核心概念--鏡像、容器、倉庫來展開的 這個就相當於docker的基礎很重要
4.1. docker鏡像
docker鏡像類似於虛擬機的鏡像文件,可以將它理解為一個只讀的模板,例如一個鏡像可以包含一個基本的操作系統,里面安裝這個應用程序鏡像是創建docker容器的基礎
詳細信息請點擊----->鏡像詳情
4.2. docker容器
docker容器就像一個輕量級的沙盒,docker利用容器來運行和隔離應用,容器是從鏡像創建的應用運行實例,可以啟動、停止、刪除,而這些容器都是互相隔離,互不可見的
詳細信息請點擊----->容器詳情
4.3. docker倉庫
docker倉庫類型於代碼倉庫,它是集中存放鏡像文件的地方
詳細信息請點擊----->倉庫詳情
PS:鏡像自身是只讀的,容器從鏡像啟動的時候,會在鏡像的最上層創建一個可寫層
五、安裝Docker
yum -y install docker-io 或者 curl -fsSL https://get.docker.com/ | sh 安裝指定版本的docker 在使用centos7,並使用yum安裝docker的時候,往往不希望安裝最新版本的docker,而是希望安裝與自己熟悉或者當前業務環境需要的版本 # 安裝依賴包 yum install -y yum-utils device-mapper-persistent-data lvm2 libsemanage-python libselinux-utils # 添加Docker軟件包源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 關閉測試版本list(只顯示穩定版) yum-config-manager --enable docker-ce-edge yum-config-manager --enable docker-ce-test # 更新yum包索引 yum makecache fast # 找到需要安裝的 yum list docker-ce --showduplicates|sort -r # 指定版本安裝 yum install docker-ce-17.09.0.ce -y # 啟動docker systemctl start docker && systemctl enable docker 查看docker版本 docker version
六、Docker服務配置項
配置文件:/etc/default/docker 進程ID:/var/run/docker.pid 日志文件:/var/log/upstart/docker.log