什么是Docker?
Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平台。
Docker通常用於如下場景:
- web應用的自動化打包和發布;
- 自動化測試和持續集成、發布;
- 在服務型環境中部署和調整數據庫或其他的后台應用;
- 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平台來搭建自己的PaaS環境。
Docker的優勢:
作為一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:
- Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。
- Docker容器對系統資源需求很少,一台主機上可以同時運行數千個Docker容器。
- Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
- Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。
Docker的安裝
Linux安裝
curl -sSL https://get.daocloud.io/docker | sh
該安裝包適用於 Ubuntu,Debian,Centos 等大部分主流 Linux 發行版,DaoCloud 后台會每隔 3 小時同步一次 Docker 官方資源,確保第一時間獲取最新的 Docker 安裝文件。
也可以安裝體驗版或測試版,體驗最新 Docker。
curl -sSL https://get.daocloud.io/docker-experimental | sh
curl -sSL https://get.daocloud.io/docker-test | sh
CentOS7下yum安裝:
sudo yum update
sudo yum install docker
官方文檔:
https://docs.docker.com/engine/installation/linux/centos/
http://docs.daocloud.io/faq/install-docker-daocloud
安裝完畢后,查看docker版本
docker version
輸出:
Client: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: OS/Arch: linux/amd64 Server: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: OS/Arch: linux/amd64
啟動 Docker 的守護進程:
service docker start
Docker倉庫
Docker 使用類似 git 的方式管理鏡像。通過基本的鏡像可以定制創建出來不同種應用的 Docker 鏡像。Docker Hub 是 Docker 官方提供的鏡像中心。在這里可以很方便地找到各類應用、環境的鏡像。由於 Docker 使用聯合文件系統,所以鏡像就像是夾心餅干一樣一層層構成,相同底層的鏡像可以共享。所以 Docker 還是相當節約磁盤空間的。要使用一 個鏡像,需要先從遠程的鏡像注冊中心拉取,這點非常類似 git。
docker pull ubuntu
Docker容器
使用 Docker 最關鍵的一步就是從鏡像創建容器。有兩種方式可以創建一個容器:使用 docker create 命令創建容器,或者使用 docker run 命令運行一個新容器。兩個命令並沒有太大差別,只是前者創建后並不會立即啟動容器。