系統在安裝建置時,最麻煩的是作業系統安裝完成後,還要更新一堆修補程式、防毒碼及設定環境等複雜麻煩的事,在不同的主機上,安裝的程式就要重新安裝一遍,很麻煩。
如果有個系統,可以將環境設定一起保留,即使主機環境不相同,可以透過軟體或系統作為銜接,讓軟體安裝完成後,直接帶著相關參數一起到新的環境,這樣一來,就不需重新安裝整套的作業系統。
由於硬體建置系統時,有安裝時間冗長、需要特定驅動程式等缺點,新的技術就出現虛擬化Virtual Machine跟容器Docker兩種方法,前者可以在一部實體機上安裝多套作業系統,容器則在一個作業系統下,可以安裝多個容器,亦即可以省下安裝該系統或程式所需的作業系統空間,系統啟動的時間也節省很多。
雖然使用者可以用虛擬機還原系統的原始環境,還是有些缺點的,包括:
如果改用容器 Docker,就可以改善上述三項的缺點,且系統佔用的空間少,通常只有幾MB而已,啟動的速度也快很多。總之,容器Docker比虛擬機有更多的優點,支出成本也降低了。
安裝Docker
本文就說明如何在Ubuntu 作業系統環境下,安裝 Docker的程序以及一些基本指令。在Ubuntu Linux環境,使用apt-get安裝 Docker指令如下:
安裝完成後,可以執行以下指令,看一下目前安裝的版本:
上圖最後一行出現permission denied,表示一般使用者,無法正常讀取Docker版本,只要將登入的使用者加上Docker群組的權限,重新登入即可,加入群組的指令如下:
如果要檢查服務是否正常啟動,可以執行以下指令:
如果要啟動╿停止╿重新啟動╿狀態 Docker可以執行以下指令:
映像檔管理
瞭解了如何安裝Docker 及啟動,以下就來看看如何搜尋 Docker Hub中的映象檔,可以使用docker search 這個指令,加上 -s [數字]代表要顯示比[數字]更高的星等,通常在OFFICIAL欄位出現[OK]的,表示這個Container是官方發行的。以下就以wordpress為例,指令如下:
如果要從Docker hub下載映像檔,可以使用 docker pull這個指令,沒有加任何Registry的位址時,預設就會從官方的Registry下載:
如果要看目前容器內的映像檔,可以使用 docker images這個指令:
如果要刪除本機中存放的映像檔,可以使用 docker rmi這個指令。但如果容器中還有正在使用的映像檔,則無法刪除。如果一定要刪除,可以使用-f 參數強迫刪除。
如果要執行某個映像檔,可以執行 docker run 或 docker create這兩個指令,如果容器內沒有這個映像檔,會直接從預設的hub下載映像檔安裝:
如果要看映像檔執行的情況,可以使用docker stat 來看記憶體
列出docker Container使用的 port:
5601/tcp -> 0.0.0.0:5601
[參考資料]
https://www.docker.com
https://philipzheng.gitbooks.io/docker_practice/content/introduction/what.html
https://legacy.gitbook.com/book/joshhu/dockercommands/details
[修訂紀錄]
2018.05.01 初稿
如果有個系統,可以將環境設定一起保留,即使主機環境不相同,可以透過軟體或系統作為銜接,讓軟體安裝完成後,直接帶著相關參數一起到新的環境,這樣一來,就不需重新安裝整套的作業系統。
由於硬體建置系統時,有安裝時間冗長、需要特定驅動程式等缺點,新的技術就出現虛擬化Virtual Machine跟容器Docker兩種方法,前者可以在一部實體機上安裝多套作業系統,容器則在一個作業系統下,可以安裝多個容器,亦即可以省下安裝該系統或程式所需的作業系統空間,系統啟動的時間也節省很多。
雖然使用者可以用虛擬機還原系統的原始環境,還是有些缺點的,包括:
- 執行系統需要等作業系統啟動,效率較差
- 作業系統佔用空間多
- 操作的程序較多
來源:philipzheng.gitbooks
如果改用容器 Docker,就可以改善上述三項的缺點,且系統佔用的空間少,通常只有幾MB而已,啟動的速度也快很多。總之,容器Docker比虛擬機有更多的優點,支出成本也降低了。
安裝Docker
本文就說明如何在Ubuntu 作業系統環境下,安裝 Docker的程序以及一些基本指令。在Ubuntu Linux環境,使用apt-get安裝 Docker指令如下:
$ sudo apt-get install docker.io
安裝完成後,可以執行以下指令,看一下目前安裝的版本:
$ docker version
上圖最後一行出現permission denied,表示一般使用者,無法正常讀取Docker版本,只要將登入的使用者加上Docker群組的權限,重新登入即可,加入群組的指令如下:
$ sudo usermod -aG docker ceiling
如果要檢查服務是否正常啟動,可以執行以下指令:
$ service docker status
如果要啟動╿停止╿重新啟動╿狀態 Docker可以執行以下指令:
$ service docker {start|stop|restart|status}
映像檔管理
瞭解了如何安裝Docker 及啟動,以下就來看看如何搜尋 Docker Hub中的映象檔,可以使用docker search 這個指令,加上 -s [數字]代表要顯示比[數字]更高的星等,通常在OFFICIAL欄位出現[OK]的,表示這個Container是官方發行的。以下就以wordpress為例,指令如下:
$ docker search -s 10 wordpress
$ docker pull wordpress:latest
如果要看目前容器內的映像檔,可以使用 docker images這個指令:
$ docker images
如果要刪除本機中存放的映像檔,可以使用 docker rmi這個指令。但如果容器中還有正在使用的映像檔,則無法刪除。如果一定要刪除,可以使用-f 參數強迫刪除。
$ docker rmi -f wordpress
如果要執行某個映像檔,可以執行 docker run 或 docker create這兩個指令,如果容器內沒有這個映像檔,會直接從預設的hub下載映像檔安裝:
$ docker run wordpress
如果要看映像檔執行的情況,可以使用docker stat 來看記憶體
$ docker stats得到以下結果:
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 342362a3afae 0.01% 39.36 MiB / 1.936 GiB 1.99% 828 B / 648 B 0 B / 0 B 6
列出docker Container使用的 port:
$ docker port c02a2268f8e6得到以下結果:
5601/tcp -> 0.0.0.0:5601
[參考資料]
https://www.docker.com
https://philipzheng.gitbooks.io/docker_practice/content/introduction/what.html
https://legacy.gitbook.com/book/joshhu/dockercommands/details
[修訂紀錄]
2018.05.01 初稿
張貼留言