1. 程式人生 > >大型架構及配置技術Docker

大型架構及配置技術Docker

列表 hist 版本 常用 -i 容器技術 ges cgroup mis

什麽是容器

? 容器技術已經成為應用程序封裝和交付的核心技術
? 容器技術的核心有以下幾個內核技術組成:
– CGroups(Control Groups)-資源管理
– NameSpace-進程隔離
– SELinux安全
? 由於是在物理機上實施隔離,啟動一個容器,可以像啟動一個進程一樣快速

什麽是Docker

? Docker是完整的一套容器管理系統
? Docker提供了一組命令,讓用戶更加方便直接地使用容器技術,而丌需要過多關心底層內核技術

Docker特性
Docker優點
? 相比於傳統的虛擬化技術,容器更加簡潔高效
? 傳統虛擬機需要給每個VM安裝操作系統
? 容器使用的共享公共庫和程序

Docker的缺點

? 容器的隔離性沒有虛擬化強
? 共用Linux內核,安全性有先天缺陷
? SELinux難以駕馭
? 監控容器和容器排錯是挑戰

部署Docker
安裝軟件
安裝前準備
? 需要64位操作系統
? 至少RHEL6.5以上的版本,強烈推薦RHEL7
? 關閉防火墻(不是必須)

安裝Docker
? 軟件包列表:
– docker-engine
– docker-engine-selinux

什麽是鏡像
? 在Docker中容器是基於鏡像啟動的
? 鏡像是啟動容器的核心
? 鏡像采用分層設計
? 使用快照的COW技術,確保底層數據不丟失

Docker hub鏡像倉庫
? https://hub.docker.com
? Docker官方提供公共鏡像的倉庫(Registry)

[root@jacob~]#docker search rhel7
[root@jacob~]#docker search centos
[root@jacob~]#docker search nginx
[root@jacob~]#docker search mysql

鏡像操作
下載、上傳鏡像
? 下載鏡像(從鏡像倉庫中下載鏡像)
[root@server0 ~]# docker pull rhel7
? 上傳鏡像(上傳鏡像到倉庫)
[root@server0 ~]# docker push rhel7

導入、導出鏡像
? 導入鏡像(通過tar包文件導入鏡像)
[root@server0 ~]# docker load < xx.tar

[root@server0 ~]# docker images
? 導出鏡像(將本地鏡像導出為tar文件)
[root@server0 ~]# docker images
[root@server0 ~]# docker save image_name > xx.tar

啟動鏡像
? 啟動centos鏡像生成一個容器
[root@server0 ~]# docker images
[root@server0 ~]# docker run -it centos bash
? 開啟另一個終端(查看容器信息)
[root@server0 ~]# docker ps

鏡像常用命令
命令列表
? 命令列表
– docker images //查看鏡像列表
– docker history //查看鏡像制作歷叱
– docker inspect //查看鏡像底層信息
– docker pull //下載鏡像
– docker push //上傳鏡像
– docker rmi //刪除本地鏡像
– docker save //鏡像另存為tar包
– docker load //使用tar包導入鏡像
– docker search //搜索鏡像
– docker tag //修改鏡像名稱和標簽

docker images
? 查看鏡像列表
– 鏡像倉庫名稱
– 鏡像標簽
– 鏡像ID
– 創建時間
– 大小
[root@jacob ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 980e0e4c79ec 8 months ago 196.7 MB

docker history
? 查看鏡像歷叱
– 了解鏡像制作過程
– 詳紳參考後面的dockerfile內容
[root@jacob ~]# docker history centos
IMAGE CREATED CREATED BY SIZE COMMENT
980e0e4c79ec 8 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
<missing> 8 months ago /bin/sh -c #(nop) LABEL name=CentOS Base Ima 0 B
<missing> 8 months ago /bin/sh -c #(nop) ADD file:e336b45186086f7d9d 196.7 MB
<missing> 8 months ago /bin/sh -c #(nop) MAINTAINER https://github. 0 B

大型架構及配置技術Docker