docker 基本組成 容器 鏡像 倉庫
docker是c/s架構
鏡像是容器的基石,層疊的只讀文件系統,bootfs,rotfs(root)
聯合加載一次加載多個文件系統,add emacs add apache
容器通過鏡像啓動,容器中可以運行客戶的一個或多個進程
啓動和執行階段
可寫文件系統
寫時賦值
鏡像棧
registry倉庫 保存用戶構建的鏡像 分爲共有和私有
docker hub
架設私有的倉庫
docker依賴的linux內核特性
namespaces命名空間
封裝 代碼隔離
系統資源的隔離
進程 網絡 文件系統
進程隔離 管理網絡接口 管理掛載點 管理跨進程通訊的訪問 隔離內核和版本
control groups控制組
用來分配資源
來源於google
資源限制
優先級設定
資源計量
資源控制 將進程組掛起
docker容器的能力
文件系統的隔離:每個容器都有自己的root文件系統
進程隔離:每個容器都運行在自己的進程環境中
網絡隔離,容器間的虛擬網絡接口和ip地址都是分開的
資源隔離和分組:使用cgroups技術將cpu和內存之類的資源獨立分配給每個docker容器
二 docker的安裝和配置
1、ubuntu中安裝docker docker依賴於linux內核
安裝ubuntu維護的版本
sudo apt-get install -y docker.io
安裝docker維護的版本
sudo apt-get install -y curl
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
2、在windows中安裝docker
linux容器技術
操作系統級別的虛擬化
依賴於linux內核的namespace和cgroups
boot2docker for windows
安裝Boot2Docker
1、訪問下載github上的boot2docker
2、安裝boot2docker
容器的基本操作
docker run IMAGE [COMMAND] [ARG]
docker run ubuntu echo “hello world”
啓動交互式容器
docker run -i -t IMAGE /bin/bash
docker run --name=container001 -it IMAGE /bin/bash
查看容器
docker ps -a
docker inspect 容器名
守護式容器
啓動交互式容器 退出是使用ctrl+p ctrl+q
再次進入 docker attach 容器名字
docker run -d IMAGE [command] [ARG]
查看容器日誌
docker logs 容器名
查看容器進程
docker top 容器名
在運行的容器內啓動新的進程或服務
docker exec -it 容器名 服務名(nginx)
docker stop 容器名
在容器中部署靜態網站
設置容器的端口映射 run -P -p
docker run -p 80 --name web -it ubuntu /bin/bash
sudo apt-get install -y nginx
sudo apt-get install -y vim
容器中使用 ps -ef命令查看當前進程
查看容器端口映射情況
docker port 容器名
docker鏡像
容器基石
層疊的只讀文件系統
repository 倉庫
registry 倉庫 包括repository
tag 鏡像標籤
同一個鏡像文件打標籤
查看鏡像、容器
docker inspect
查找鏡像
在docker hub上獲取
docker search 命令
獲取鏡像
docker pull ubuntu:14.04
推送鏡像
docker push 鏡像名
構建鏡像
docker commit container
docker服務啓動配置文件
/etc/default/docker
docker服務停止啓動命令
service docker start
service docker stop
service docker restart