2018年10月26日 星期五

Docker安裝教學

簡單的講 Docker 是輕量化的虛擬系統,

不在需要像舊有的虛擬系統那樣,

在每個虛擬系統的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/

(不過原有的映像檔全都會消失不見)


沒有留言: