學習docker
其實寫過好幾個版本的docker筆記來着,又應該來複習一下了。
主要參考:
- 第一本Docker书 [澳]詹姆斯•特恩布尔(James Turnbull)
- Docker技术入门与实战 第3版 杨保华 / 戴王剑 / 曹亚仑
- Docker实战【美】Jeff Nickoloff
- Docker经典实例 [美] Sébastien Goasguen
基本知識簡介
docker是基於go語言實現的開源容器項目。docker項目已加入linux基金會,並遵循apache 2.0協議。
虛擬化(virtualization)的核心始對資源的抽象。基於硬件的虛擬化如SR-IOV和基於軟件的虛擬化。基於軟件的虛擬化包括應用虛擬化如wine和平臺虛擬化。
平臺虛擬化又可以細分爲:
- 完全虛擬化,如vmware workstation、virtualbox、qemu等。
- 硬件輔助虛擬化。intel-vt,amd-v
- 部分虛擬化。
- 超虛擬化。早期的xen
- 操作系統級虛擬化 內核通過創建多個虛擬的操作系統實例(內核和庫)來隔離不同的進程。如docker。不需要額外的supervisor支持。
核心概念
docker三大核心概念:
鏡像(image):類似虛擬機鏡像
容器(container):類似於輕量級沙箱,docker利用容器來運行和隔離應用。
倉庫(repository):集中存放鏡像文件的場所。公開倉庫(如docker hub)和私有倉庫。參考git和github的設計理念。
docker引擎是使用docker容器的核心組件。
基本使用
避免每次docker命令時候都需要切換到特權身份,可以將當前用戶加入安裝中自動創建的docker用戶組。sudo usermod -aG docker USER_NAME
查看基本情況:docker info
查看正在運行的容器: docker ps,查看全部容器:docker ps -a
獲取鏡像:docker pull
列出鏡像:docker images或者docker image ls
docker會爲創建的每一個容器自動生成一個隨機名字。制定名字需要使用–name參數來實現。