- 由於不同應用依賴的環境不同,遷移到其他環境(服務器)時往往需要重新部署和調試
- Docker通過容器打包應用,解耦應用和運行平臺,這樣在遷移的時候只需要在新服務器上啓動需要的容器即可,無需再配環境
Docker容器技術也是操作系統虛擬化的一種,傳統方式(VMware)是在硬件層面實現虛擬化,Docker是在操作系統層面上實現虛擬化,因此更加輕量級
表1 容器技術與虛擬機技術的比較
特性 | 容器 | 虛擬機 |
---|---|---|
啓動速度 | 秒級 | 分鐘級 |
性能 | 接近原生 | 較弱 |
內存代價 | 很小 | 較大 |
硬盤使用 | 一般爲MB | 一般爲GB |
運行密度 | 單機支持上千個容器 | 一般幾十個 |
隔離性 | 安全隔離 | 完全隔離 |
遷移性 | 優秀 | 一般 |
Docker的核心概念
Docker有三個核心概念:鏡像Image、容器Container、倉庫Repository
鏡像
可以理解爲一個系統ISO,裏面裝好了某些應用
使用 docker images 可以查看主機已有的鏡像信息
- 圖中 REPOSITORY 表示來自哪個倉庫
- TAG表示鏡像的版本信息
- IMAGE ID表示鏡像唯一標識,一般可以用前幾位代替整個ID
容器
類似於一個輕量級的沙箱,用來運行應用
容器是由鏡像創建的運行實例,可以啓動、開始、停止、刪除
鏡像本身是隻讀的,容器從鏡像啓動時會在最上層創建一個可寫層
容器之間彼此隔離,互不可見
使用 docker ps 查看運行中的容器
- CONTAINER ID 唯一標識容器
- IMAGE 的組成是 REPOSITORY:TAG
- COMMAND 表明是以什麼命令運行的容器
倉庫
Docker 倉庫類似於代碼倉庫,是集中存放鏡像文件的地方
目前最大的公開倉庫是 Docker Hub,國內有時速雲、阿里雲等
Docker 安裝
參考官方文檔,安裝社區版(Community Edition)
由於Docker對Linux的支持是原生的,本文介紹ubuntu下的安裝方式
- ubuntu系統要求14.04及以上
對於14.04,先安裝依賴包
sudo apt-get update sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
配置倉庫
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
安裝docker
sudo apt-get update sudo apt-get install docker-ce
將當前用戶加入docker組
sudo groupadd docker sudo usermod -aG docker $USER