1. 程式人生 > >《第一本Docker書》筆記

《第一本Docker書》筆記

        看這本書是也是專業的運維同事推薦的,我主要想了解下docker,學習一下基本命令,在工作中同事說起時至少得知道大概是個什麼,自己還談不上具體應用。

一、docker元件 1、客服端和伺服器(守護程序),docker是c/s架構的程式,提供命令列工具docker以及一整套RESTful API。 2、映象,基於聯合檔案系統的一種層式結構(類似於jar包)。 3、容器,基於映象啟動起來的,容器中可以執行一個或多個程序。 4、倉庫,儲存構建的映象(類似於Git)。 docker類似於虛擬機器,映象就相對於一個虛擬機器系統映象,容器就相當於在虛擬機器中啟動起來的系統。

二、基本命令 1、docker run 映象:執行一個映象即建立啟動一個容器; 2、docker ps:檢視執行中或全部容器; 3、docker start/restart/stop 容器名或ID:啟動/重啟/停止一個容器; 4、docker attach 容器名或ID:重新附著到該容器的會話上; 5、docker logs 容器名或ID:檢視容器日誌; 6、docker exec 容器名或ID:在容器內部啟動新程序,包括後臺任務和互動任務; 7、docker inspect 容器名或ID:重新附著到該容器的會話上; 8、docker rm 容器名或ID:刪除一個容器; 9、docker search/pull 映象名:從倉庫查詢/拉取映象; 10、docker images 映象名:檢視映象; 11、docker history 映象ID:檢視映象構建資訊;

三、構建映象 1、Dockerfile內指令 FROM 映象名:第一條指令指定基礎映象; MAINTARINER 作者 聯絡方式:映象作者資訊; RUN..... :其它執行的指令,如RUN apt-get install -y nginx 安裝nginx包; ...... EXPOSE 埠:指定可向外部公開的埠,可以多個EXPOSE,但docker不會自動開啟這些埠,需要在docker run時指定開啟那些埠。 2、docker build -f dockerfile路徑 -t 新映象名稱:標籤:構建dockerfile生成新映象。 3、docker tag 映象ID 倉庫地址(主機名:埠)/映象名:打上帶倉庫地址的標籤,以便推送到對應的倉庫。 4、docker push 倉庫地址(主機名:埠)/映象名:推送映象到對應倉庫。

四、應用服務 1、VOLUME 容器目錄(或宿主機目錄:容器目錄):將宿主機目錄掛載到容器目錄,這容器目錄稱為卷,卷是一個或者多個容器內特定的目錄,可以繞過分層的聯合檔案系統,未docker提供持久資料或共享資料。 2、docker inspect -f "{{ .Volumes}}" 容器名或ID:檢視卷對應掛載的宿主機目錄。 3、docker run --link 容器名:別名:連線一個容器並使用一個別名,建立連線後就可以通過環境變數裡的連線資訊或DNS和/etc/hosts資訊來通訊。