【Docker】Docker學習筆記(一)Docker基礎
阿新 • • 發佈:2019-01-06
1 Docker簡介
- 開發語言:Go
- 性質:作業系統層面的虛擬化技術
- Docker 和傳統虛擬化方式的區別:
- 傳統虛擬機器技術是虛擬出一套硬體後,在其上執行一個完整作業系統,在該系統上再執行所需應用程序
- 容器內的應用程序直接運行於宿主的核心,容器內沒有自己的核心,而且也沒有進行硬體虛擬。因此容器要比傳統虛擬機器更為輕便
- Docker的優點:
- 更高效的利用系統資源
- 更快速的啟動時間
- 一致的執行環境
- 持續交付和部署
- 更輕鬆的遷移
- 更輕鬆的維護和擴充套件
2 Docker基本概念
2.1 映象|Image
Docker 映象是一個特殊的檔案系統,除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(如匿名卷、環境變數、使用者等)。映象不包含任何動態資料,其內容在構建之後也不會被改變。
2.2 容器|Container
容器:對程序進行封裝隔離,且隔離的程序獨立於宿主和其它的隔離的程序
容器是映象執行時的實體。容器可以被建立、啟動、停止、刪除、暫停等。
容器的實質是程序,但與直接在宿主執行的程序不同,容器程序運行於屬於自己的獨立的名稱空間。因此容器可以擁有自己的 root 檔案系統、自己的網路配置、自己的程序空間,甚至自己的使用者ID空間。容器內的程序是執行在一個隔離的環境裡,使用起來,就好像是在一個獨立於宿主的系統下操作一樣
2.3 倉庫|Repository
- Docker Registry:一個集中的儲存、分發映象的服務,一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標籤(Tag);每個標籤對應一個映象。
- 一個倉庫會包含同一個軟體不同版本的映象,而標籤就常用於對應該軟體的各個版本。我們可以通過 <倉庫名>:<標籤> 的格式來指定具體是這個軟體哪個版本的映象。如果不給出標籤,將以 latest 作為預設標籤。
- 倉庫名經常以兩段式路徑形式出現,比如 jwilder/nginx-proxy,前者往往意味著 Docker Registry 多使用者環境下的使用者名稱,後者則往往是對應的軟體名。
3 安裝Docker
3.1 Ubuntu
- 注意:Ubuntu版本必須高於16.04,否則需要安裝儲存層驅動,用來支援docker的分層儲存機制。
- 安裝步驟:
sudo apt-get update
sudo apt-get install apt-transport-https ca certificates curl software-properties-common
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) stable"
- 安裝Docker CE:
sudo apt-get update
- 建立Docker使用者組
sudo groupadd docker
sudo usermod -a -G docker $USER
- 重啟(重啟Terminal沒用,需要重系統)
- 啟動Docker CE:
sudo systemctl enable docker
sudo systemctl start docker
- 測試
docker run hello-world
- 配置倉庫的國內映象,也叫加速器:
- 在 /etc/docker/daemon.json 中寫入如下內容(如果檔案不存在請新建該檔案)
sudo systemctl daemon-reload
sudo systemctl restart docker
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}