Docker 是docker.lnc 公司開源的一個基於LXC技術上構建的Container容器引擎,源代碼託管在GitHub上,基於go語言並遵從Apache2.0 協議開源
Dokcer 是通過內核虛擬化技術(namespace以及Cgroups 等)來提供容器的資源隔離與安全保障等,由於Docker 通過操作系統層虛擬化實現隔離,所以Docker 容器在運行時不需要類似於虛擬機(Vm)額外的操作系統開銷,提高資源利用率
docker 組成是傳統的C/S 模式,組件:鏡像(p_w_picpath)、容器(container)、倉庫(Reository)
docker 與虛擬機的區別
docker 與 虛擬機和openstack 對比
類別 | Docker | Openstack | 虛擬機 |
部署難度 | 非常簡單 | 組件多,部署負載 | 簡單 |
啓動速度 | 秒級 | 分鐘級 | 分鐘級 |
執行性能 | 和物理系統幾乎一致 | Vm會佔用一些資源 | 本身就佔用一定資源 |
鏡像體積 | 鏡像是MB | 虛擬機鏡像是GB 級別 | 虛擬機鏡像是GB 級別 |
管理效率 | 管理簡單 | 組件相互依賴,管理複雜 | 圖形化,管理簡單 |
隔離性 | 隔離性高 | 徹底隔離 | 屬於單獨系統,徹底隔離 |
可管理性 | 單進程,不建議開啓ssh | 完整的系統管理 | 完整的系統管理 |
網絡鏈接 | 比較弱 | 藉助Neutron可以靈活組件各類網絡架構 | 身體提供虛擬網卡支持 |
docker
能做什麼?
1、簡化管理
2、開發效率,可以避免基礎環境的部署
3、服務器整合,可以在一個服務器上做個多個服務應用
4、多租戶
5、代碼流水管理
6、應用隔離
7、debug 調試能力
8、快速部署
docker 缺點:
因爲docker 是傳統c/s 架構,當服務端冗機所有應用均失效。
docker 基礎命令,循序漸進總結中。。。
下載鏡像: docker pull centos
查看所有鏡像: docker p_w_picpaths
導出鏡像: docker save centos >/opt/centos.tar.gz
導入鏡像: docker load </opt/centos.tar.gz
公共鏡像位置: dockerhub
刪除鏡像: docker rmi (如果鏡像關聯容器不能被刪除)
創建容器並開啓 docker run centos /bin/echo "hehe"
查看所有的容器:docker ps -a
查看所有正在運行的容器:docker ps | docker ps -a -l
創建一個自定義的容器: docker run --name mydocker -it centos /bin/bash
-i 標準輸入輸出打開 -t 分配一個僞終端 /bin/bash 執行一個鏡像命令
在容器裏執行exit 容器會自動關閉
啓動容器: docker start 容器ID
關閉容器: docker stop 容器ID
進入容器: docker attach 容器ID (該方法如果在多端登錄會在另一端也會顯示)
刪除容器: docker rm 容器ID (刪除正在運行的容器 -f 參數)
終止所有容器: docker kill $(docker ps -a -q) ---最暴力也最牛b 的重啓服務systemctl restart docker
esente 管理容器命令 如果不存在就yum -y util-linux 註釋:該命令爲進入另一個進程名稱的空間
另一種進入容器退出並不影響容器
docker inspect --format “``.`State`.`Pid`” 容器id
nsenter -t 容器pid -i -u -p (進入容器互不影響)
如果在測試的時候可以退出容器並刪除提示
docker run --rm 容器名字 /bin/echo "hehe"
搜索容器: docker searche 鏡像名字
=============================================================