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 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 exec -it dbserver /bin/sh
Docker attach能夠attach到一個已經運行的容器的stdin,而後進行命令執行的動做。
可是須要注意的是,若是從這個stdin中exit,會致使容器的中止。sql
docker rm -f dbserverdocker
docker stop d03 shell
ENTRYPOINT/CMD都只能在文件中存在一次,而且最後一個生效 多個存在,只有最後一個生效,其它無效!
須要初始化運行多個命令,彼此之間可使用 && 隔開,但最後一個需要爲無限運行的命令,需切記!
ENTRYPOINT,表示鏡像在初始化時須要執行的命令,不可被重寫覆蓋,需謹記 可是使用--entrypoint 也能夠覆蓋
CMD,表示鏡像運行默認參數,可被重寫覆蓋網絡
中止全部的container,這樣纔可以刪除其中的images:ui
docker stop $(docker ps -a -q)
若是想要刪除全部container的話再加一個指令:.net
docker rm $(docker ps -a -q)
參考資料: