Docker入門,Part 1:方向
非常的開心,我們能夠一起來學習Docker。通過Docker入門手冊我們將一起學習了解以下幾個方面的內容:
- 配置Docker環境
- 構建鏡像并啟動容器
- 運行多個容器擴容你的應用
- 添加后端數據庫實現應用棧
- 在生產環境上部署應用
Docker相關概念
Dockers為開發運維人員提供一個利用容器實現的開發,部署,運行的統一平臺。利用Linux的容器技術實現應用的部署稱之為容器化。容器并不是一門新的技術,但是通過容器來實現便捷的應用部署卻是非常新穎的技術和方向。
容器化越來越流行是因為:
- 靈活:即使是非常復雜的應用也能夠實現容器化
- 輕量:容器與主機是共用同一個內核,我們可以這么理解容器實際上就是主機上的一個進程(當然這個描述不一定準確)
- 可變:我們能夠實現快捷的云部署和更新
- 便捷:我們能夠在本地構建,在云端部署,在任何地方運行
- 可擴展:我們能夠自動化的增加分布式容器的副本
-
堆棧:能夠實現垂直的堆棧
Docker
鏡像和容器
通過運行鏡像來啟動一個容器。鏡像是一個可執行的包,包括運行應用所必需的所有東西(代碼,運行環境,依賴庫,環境變量和配置文件等)
一個容器就是運行鏡像的實例。在Linux環境下我們可以通過命令docker ps
來查看所有正在運行的容器
容器和虛擬機
容器運行于原生的主機系統中并與其他容器共同使用主機內核。每個容器都是獨立運行的進程,不占用任何不必要的內存,所以非常的輕量
相比而言,虛擬機則是通過虛擬機管理程序虛擬訪問主機資源運行了一個完整的操作系統。一般情況下,虛擬機提供的運行環境會比應用程序實際需要的資源更多。贊成資源的浪費和環境的笨重。
[圖片上傳失敗...(image-381cc3-1533459729457)]
[圖片上傳失敗...(image-3c6c54-1533459729457)]
準備我們的Doker環境
該章節會通過而外一篇文章來介紹,請在站內查找
測試Doker
- 運行
docker --version
確保安裝是可用的版本 - 運行
docker info
(或者docker version
,不添加--
)查看更多的docker安裝信息
為避免權限的問題,需要將用戶添加到docker組
測試Docker
- 我們從運行一個非常簡單的容器開始,運行萬能的hello-world開始測試我們的安裝是否成功
docker run hello-world
,如果一切OK,我們能夠在終端看到運行成功的提示信息 - 查看本機上下面的鏡像信息
docker image ls
- 查看上文提到的hello-world容器信息,
docker container ls --all
(如果上文的hello-world容器一直在運行,可以不用添加--all
選項)
回顧
## 列出Docker命令行命令
docker
docker container --help
## 查看Docker版本和相關信息
docker --version
docker version
docker info
## 運行Docker鏡像
docker run hello-world
## 查看鏡像
docker image ls
## 查看容器 (運行中, 所有,所有關閉模式的)
docker container ls
docker container ls --all
docker container ls -aq
總結
容器化是CI/CD無縫的集成,例如:
- 應用不再有系統的依賴(一處構建,多處運行)
- 能夠對已發布的應用任何一部分進行更新
- 資源使用率得到優化
使用Docker,擴展應用程序的就僅僅在于啟動新的容器,而不是運行笨重的VM主機