這周末體驗了一下挺火的Docker技術,記錄學習筆記。
>Docker是干什么的
Docker 是一個基于Linux容器(LXC-linux container)的高級容器引擎,基于go語言開發,
源代碼托管在 Github 上, 遵從Apache2.0協議開源。Docker的目標是實現輕量級的操作系統虛擬化解決方案。
學習Docker首先要了解幾個概念:
鏡像―Docker的鏡像和常見的系統ISO鏡像類似,包含了應用程序的信息;
容器―容器相當于一個可以運行起來的虛擬機,應用程序運行在容器中,Docker運行在“Docker”上;
倉庫―倉庫是存放鏡像的地方,有類似git的版本控制,同樣分為公開倉庫(Public)和私有倉庫(Private)兩種形式;
Docker支持大部分的Linux發行版,通過使用Docker容器,就可以在不同的操作系統,
不同的機器上運行自己的應用,不用關心硬件、運行環境之類的配置,應用程序的遷移變得非常簡單。
>Docker和傳統虛擬化技術的對比
相比傳統虛擬機技術,Docker資源占用少,啟動更快,很大的方便了項目的部署和運維。
Docker是在操作系統層面上實現虛擬化,復用本地主機的操作系統,傳統方式是在硬件的基礎上,虛擬出多個操作系統,然后在系統上部署相關的應用。
下面的這張圖片參考相關博文,很形象的說明了Docker和VM之類的傳統虛擬化技術的區別:
vs
>搭建Docker環境
我使用的是Ubuntu 14.04,在這上面安裝Docker服務。
快速安裝Docker
14.04版本的Ubuntu倉庫中已經支持Docker的安裝,
可以使用快速安裝的方式,sudo apt-get updatesudo apt-get install docker.io
啟動服務和守護進程
service docker.io statusservice docker.io start
這種方式安裝通常不是Docker的最新版本,
如果想要安裝最新版本,可以去Docker官網下載安裝。
>創建第一個Docker鏡像
構建Docker鏡像的一般過程是首先創建一個容器,并在容器里修改鏡像,配置相關環境等,最后將修改提交為一個新鏡像。
(1)下載鏡像文件
下載用于制作鏡像的系統,
sudo docker pull index.alauda.cn/alauda/ubuntu
或者也可以直接從Docker的鏡像中心拉取,不過貌似非常慢:
sudo docker pull ubuntu
下載成功后,使用images命令查看本地的鏡像列表:
docker images
這里需要注意,使用Docker的時候請添加sudo。
默認安裝完 docker 后,每次執行 docker 都需要運行 sudo 命令,如果不跟 sudo,直接執行 docker 命令會報一些權限錯誤。
(2)啟動容器并修改鏡像
鏡像下載到本地以后,就可以使用Docker運行,
通過下面的命令參數啟動容器,
docker run <相關參數> <鏡像 ID> <初始命令>
-i:表示以“交互模式”運行容器
-t:表示容器啟動后會進入其命令行
-v:表示需要將本地哪個目錄掛載到容器中,
新聞熱點
疑難解答