docker 初體驗

docker 初體驗

在參加RoboCup仿真組的時候遇到了一個很奇怪的問題,實驗平臺運行的環境是java9+,但是智能體代碼的運行環境是java8(高版本不可以)。本來打算起一個虛擬機來運行兩份不同的代碼,不過室友告訴我一個更好的解決方案,使用docker——更輕量高效的解決方案。

什麼是docker

摘自docker中文社區:Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集羣和其他的基礎應用平臺。

爲什麼我們使用docker

我們已經有了虛擬機這樣的很成熟的解決方案,那麼我們爲什麼需要使用docker 呢?
一開始我將docker理解爲一個更輕量級,更優化的虛擬機,但是事實上他們是不同的機制。
看到一個很有趣的形容:

  • 物理機:一個獨棟別墅,有一個房子,獨立地基,獨立花園
  • 虛擬機:一棟公寓樓,一棟樓裏裏有很多單獨套間,所有套間的住戶共享這棟樓,同時不共享水電,也不能進入別人的房子。
  • 容器:一棟樓,樓房裏有很多套件,每個套間裏有小房間,住戶只擁有一個小房間,同一套間的多個住戶共享套間的所有資源,不能進入別人的小房間。

舉個栗子

以我遇到的情況爲例:

  • 如果我使用虛擬機:
    • 創建一個虛擬機,安裝ubuntu,在虛擬機中配置JAVA10的環境,運行實驗平臺
    • 創建一個虛擬機,安裝ubuntu,在虛擬機中配置JAVA8的環境,運行開發平臺
  • 如果我使用docker容器:
    • 安裝ubuntu的鏡像
    • 創建一個容器,配置JAVA10的環境,運行實驗平臺
    • 創建一個容器,配置JAVA8的環境,運行開發平臺

這樣說可能還是沒有體現 docker 的特點我們來畫一個簡單的圖(爲了更形象加上了一個CentOS靈魂畫手上線)
虛擬機與docker容器

超簡單使用入門

安裝

安裝這種小事,自己去官網看咯~
ps:我使用的是deepin15.7系統,安裝可以參照debian8~

添加/刪除鏡像

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章