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 .java

  • ##查看有哪些鏡像文件

docker imagesmysql

  • ##運行一個鏡像

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.6git

  • ##查看全部狀態的容器

docker ps -aspring

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

docker exec -it dbserver /bin/sh
     Docker attach能夠attach到一個已經運行的容器的stdin,而後進行命令執行的動做。 
     可是須要注意的是,若是從這個stdin中exit,會致使容器的中止。sql

  • ##查刪除鏡像

docker rm -f dbserverdocker

  • ##中止鏡像,後面這個是id 能夠不用敲全,找的到就能夠了

docker stop d03 shell

  • ##ENTRYPOINT/CMD區別

ENTRYPOINT/CMD都只能在文件中存在一次,而且最後一個生效 多個存在,只有最後一個生效,其它無效!
須要初始化運行多個命令,彼此之間可使用 && 隔開,但最後一個需要爲無限運行的命令,需切記!
ENTRYPOINT,表示鏡像在初始化時須要執行的命令,不可被重寫覆蓋,需謹記 可是使用--entrypoint 也能夠覆蓋
CMD,表示鏡像運行默認參數,可被重寫覆蓋網絡

 

中止全部的container,這樣纔可以刪除其中的images:ui

docker stop $(docker ps -a -q)

若是想要刪除全部container的話再加一個指令:.net

docker rm $(docker ps -a -q)

參考資料:

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

相關文章
相關標籤/搜索