dockerClient客戶端 Docker Daemon守護進程 Docker Image鏡像 DockerContainer容器
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和建立Docker容器。Docker 容器經過 Docker 鏡像來建立。容器與鏡像的關係相似於面向對象編程中的對象與類。 Docker採用 C/S架構 Docker daemon 做爲服務端接受來自客戶的請求,並處理這些請求(建立、運行、分發容器)。 客戶端和服務端既能夠運行在一個機器上,也可經過 socket 或者RESTful API 來進行通訊。 Docker daemon 通常在宿主主機後臺運行,等待接收來自客戶端的消息。 Docker 客戶端則爲用戶提供一系列可執行命令,用戶用這些命令實現跟 Docker daemon 交互。
相似於虛擬機的快照,能夠理解爲一個是面向Docker容器引擎的制度模板,好比一個鏡像能夠是一個完整的centos操做系統,也能夠從網上下docker
容器
容器是從鏡像建立的運行實力,它能夠被啓動中止,建立,刪除。每一個一個容器都是相互隔離,互不可見,能夠保證平臺的安全性,還能夠吧容器看作一個簡易版的Linux環境shell
倉庫
倉庫用來集中保存鏡像地方當建立了本身的鏡像後,可使用qush命令上傳到公共倉庫編程
Docker 特色
特色 | Docker容器 | 虛擬機 |
---|---|---|
啓動速度 | 秒級 | 分鐘級 |
計算機能力耗損 | 幾乎無 | 損耗50%左右 |
性能 | 接近原生 | 弱於 |
系統支持量(單機) | 上千個 | 幾十個 |
隔離性 | 資源限制 | 徹底隔離 |
配置倉庫vim
# vim /etc/yum.repos.d/ghostcloud.repo [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg yum list
安裝Dockercentos
yum install docker-engine -y systemctl start docker //啓動docker systemctl enable docker.service //設置開機自啓動 docker version //查看版本 docker info //查看docker基本信息
搜索並獲取鏡像安全
docker search cobbler //搜索關鍵字cobbler docker pull jasonlix/docker-cobbler //下載搜索出的結果docker images //查看全部鏡像 (也能夠單獨查詢 後面跟倉庫名稱和標籤)bash
docker inspect //指定ID號查看 詳細信息
服務器
刪除以前確保沒有被容器使用,如有容器使用須要先刪除容器。 # docker rmi cobbler:cobbler //刪除 注:當鏡像有多個標籤時只是刪除標籤 存出鏡像和載入鏡像 # docker save -o cobbler jasonlix/docker-cobbler //將本地鏡像存爲文件cobbler # docker load < cobbler //載入鏡像 或者 # docker --input cobller //載入鏡像
docker create -it jasonlix/docker-cobbler /bin/bash 會生一串序列號 docker ps -a 查看容器中全部進程 docker start 啓動容器 跟ID號 docker stop 中止同期 跟ID號
docker run jasonlix/docker-cobbler /usr/bin/bash -c ls / 查看鏡像根目錄 docker run -d jasonlix/docker-cobbler /usr/bin/bash -c "while true;do echo htllo;done" 一直保持在啓動 docker ps -a 你要進入的序列號的狀態Up About a minute 或者Up 1 second docker exec -it 1c0b830793a7 /bin/bash 進入到容器中shell環境中前提是保持開啓狀態 exit退出
限制CPU使用速率:架構
docker run --cpu-quota 20000 centos(容器名) //cpu的使用率限定爲20%socket
按比例分享CPU:
docker run --cpu-shares 1024 centos
限制CPU內核使用:
docker run --cpu-shares 1024 centos
限制CPU內核使用:
docker run --cpuset-cpus 0,1 centos //容器centos獨享 第1和第2個內核
限制內存使用:
docker run -m 512m centos //限制cents容器內存512M
對blkio限制:
限制容器的/dev/sda1 的寫入ipos爲1MB docker run --device-write-bps /dev/sda1:1mb centos