不在需要像舊有的虛擬系統那樣,
在每個虛擬系統的image都安裝一份作業系統,
這會導致虛擬機器佔用的資源較多,
而且映像檔檔案也比較大,
用了Docker就能輕鬆在每個提供Docker服務的機器上快速部屬,
不囉唆,
直接開始今天的主題:
Docker安裝教學
以Ubuntu為範例,
Ubuntu安裝Docker必須執行:
$ sudo apt-get install apt-transport-https
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install -y lxc-docker
安裝完畢之後,執行:
sudo service docker start
啟動Docker服務.
啟動服務時,
有時會遇到失敗狀況如下:
Failed to start docker.service: Unit docker.service is masked.
這時,
只要執行:
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
這三行指令後再啟用即可
安裝完並啟用Docker服務之後,
與舊有的虛擬機器一樣,
Docker也需要映像檔執行.
可以從公有庫中下載映像檔:
sudo docker pull ubuntu:16.04
此命令等同於:
$ sudo docker pull registry.hub.docker.com/ubuntu:16.04
意思是從registry.hub.docker.com的倉庫ubuntu中下載Tag為12.04的映像檔
利用
sudo docker images
列出目前現有的映像檔
執行
sudo docker run -t -i ubuntu:16.04 /bin/bash
就能在此映像檔中進行自訂操作.
若有修改內容想加到該映像檔中,
可透過
sudo docker commit -m "說明" -a "使用者訊息" 映像檔容器ID 新名稱:新TAG
將修改的內容加入並存為 新名稱:新TAG
例如:
sudo docker commit -m "test1" -a "xyaw" 2342df5eb54e ubuntu:test_version
執行完畢用sudo docker images觀看差異:
可以看到多出一個TAG為test_version的映像檔
Docker的應用範圍很廣,
端看使用者如何使用
安裝完確定能動之後,
嘗試把主機重開機在重新啟動Docker,
這裡有個詭異的情形是,
重開機之後要啟動Docker service會出現錯誤
解決方法如下:
rm /etc/docker/key.json
rm -rf /var/lib/docker/
(不過原有的映像檔全都會消失不見)