天天看點

docker 從零開始

docker 包括三個基本概念
    1.鏡像(Image)
    2.容器(Container)
    3.倉庫(Repository)
docker的特性:
    1.檔案系統隔離:每個程序容器運作在完全獨立的根檔案系統裡。
    2.資源隔離:可以使用cgroup為每個程序容器配置設定不同的系統資源,例如CPU和記憶體。
    3.網絡隔離:每個程序容器運作在自己的網絡命名空間裡,擁有自己的虛拟接口和IP位址。
    4.寫時複制:采用寫時複制方式建立根檔案系統,這讓部署變得極其快捷,并且節省記憶體和硬碟空間。
    5.日志記錄:Docker将會收集和記錄每個程序容器的标準流(stdout/stderr/stdin),用于實時檢索或批量檢索。
    6.變更管理:容器檔案系統的變更可以送出到新的映像中,并可重複使用以建立更多的容器。無需使用模闆或手動配置。
    7.互動式Shell:Docker可以配置設定一個虛拟終端并關聯到任何容器的标準輸入上,例如運作一個一次性互動shell。
    docker安裝與啟動
           
  • ##建構一個docker 鏡像

docker build -t cdphere/mysql:5.6 .

  • ##檢視有哪些鏡像檔案

docker images

  • ##運作一個鏡像

docker run -d -p 3306:3306 --name dbserver csphere/mysql:5.6

              -P 大寫的p 指定的端口 後面重新開機宿主主機的端口與容器暴露的端口會變化 

docker run -d -p 3306:3306 --name dbserver -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql csphere/mysql:5.6

  • ##檢視所有狀态的容器

docker ps -a

  • ##進入docker容器中(互動式)

docker exec -it dbserver /bin/sh

     Docker attach可以attach到一個已經運作的容器的stdin,然後進行指令執行的動作。 

     但是需要注意的是,如果從這個stdin中exit,會導緻容器的停止。

  • ##查删除鏡像

docker rm -f dbserver

  • ##停止鏡像,後面這個是id 可以不用敲全,找的到就可以了

docker stop d03 

  • ##ENTRYPOINT/CMD差別

ENTRYPOINT/CMD都隻能在檔案中存在一次,并且最後一個生效 多個存在,隻有最後一個生效,其它無效!

需要初始化運作多個指令,彼此之間可以使用 && 隔開,但最後一個須要為無限運作的指令,需切記!

ENTRYPOINT,表示鏡像在初始化時需要執行的指令,不可被重寫覆寫,需謹記 但是使用--entrypoint 也可以覆寫

CMD,表示鏡像運作預設參數,可被重寫覆寫

停止所有的container,這樣才能夠删除其中的images:

docker stop $(docker ps -a -q)
           

如果想要删除所有container的話再加一個指令:

docker rm $(docker ps -a -q)
           

參考資料:

http://git.oschina.net/itmuch/spring-cloud-book

版權聲明:本文為CSDN部落客「weixin_34313182」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34313182/article/details/92088269