1 幾個概念:
????鏡像構建:即創(chuàng)建一個鏡像趟径,它包含安裝運行所需的環(huán)境应民、程序代碼等作彤。這個創(chuàng)建過程就是使用 dockerfile 來完成的玛歌。
????容器啟動:容器最終運行起來是通過拉取構建好的鏡像,通過一系列運行指令(如端口映射崖技、外部數(shù)據(jù)掛載逻住、環(huán)境變量等)來啟動服務的。針對單個容器迎献,這可以通過 docker run 來運行瞎访。
????而如果涉及多個容器的運行(如服務編排)就可以通過 docker-compose 來實現(xiàn),它可以輕松的將多個容器作為 service 來運行(當然也可僅運行其中的某個)吁恍,并且提供了 scale (服務擴容) 的功能扒秸。
????簡單總結:
????dockerfile: 構建鏡像;
????docker run: 啟動容器冀瓦;
????docker-compose: 啟動服務伴奥;
2 容器卷掛載
? ? ?docker run -it -v /home/xx:容器路徑
? ? ?docker-compose 中 VOLUME /var/log /var/db(服務器上路徑,容器上路徑進行了關聯(lián)掛載)
3 進入docker容器
????sudo docker exec -it 775c7c9ee1e1 /bin/bash? (推薦)
????docker attach 44fc0f0582d9?
? ? 缺點:當多個窗口同時使用該命令進入該容器時翼闽,所有的窗口都會同步顯示拾徙。如果有一個窗口阻塞了,那么其他窗口也無法再進行操作感局。
4 docker訪問本地數(shù)據(jù)庫
????在docker容器里localhost并不是指宿主機的localhost尼啡,而是docker0,用ifconfig可以查看询微;
5 服務器斷網(wǎng)后崖瞭,重啟docker容器,使用docker-compose啟動服務撑毛,之前設置保留
6 docker容器相互訪問书聚、訪問docker應用
? 虛擬ip訪問,ifconfig查看藻雌,通過網(wǎng)絡協(xié)議訪問雌续;
? 使用--link,參數(shù)中第一個centos-1是容器名蹦疑,第二個centos-1是定義的容器別名(使用別名訪問容器)西雀,為了方便使用萨驶,一般別名默認容器名歉摧;
? docker network create testnet,創(chuàng)建bridge網(wǎng)絡,若訪問容器中服務叁温,可以使用這用方式訪問 <網(wǎng)絡別名>:<服務端口號>
7 docker-compose和dockerfile區(qū)別
????docker-compose是編排容器的再悼。例如,你有一個php鏡像膝但,一個mysql鏡像冲九,一個nginx鏡像。如果沒有docker-compose跟束,那么每次啟動的時候莺奸,你需要敲各個容器的啟動參數(shù),環(huán)境變量冀宴,容器命名灭贷,指定不同容器的鏈接參數(shù)等等一系列的操作,相當繁瑣略贮。而用了docker-composer之后甚疟,你就可以把這些命令一次性寫在docker-composer.yml文件中,以后每次啟動這一整個環(huán)境(含3個容器)的時候逃延,你只要敲一個docker-composer up命令就ok了览妖。而dockerfile的作用是從無到有的構建鏡像。
8 參考文獻:
? http://www.reibang.com/p/28e3f108cecd
? https://segmentfault.com/q/1010000009883848