容器技術:chroot、namespaces、cgroups
docker平時用戶空間只運行一個進程,只運行在一個namespaces中
鏡像:分層構建、聯合掛載
容器編排工具:kubernetes ==> k8s
docker架構圖
鏡像:靜態的
清華大學開源鏡像網站: https://mirrors.tuna.tsinghua.edu.cn
docker-ce:配置文件:/etc/docker/daemon.json 此配置文件有時候需要手動創建
docker鏡像加速:docker cn 阿里雲加速器 中國科技大學
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
docker image pull nginx:1.14-alpine
docker image ls 列出所有鏡像
docker image rm 刪除某個鏡像
docker image ls --no-trunc
docker container COMMAND --help
docker run --name kvstor1 -d redis:4-alpine 運行一個redis,先在dockerhub上搜索是否有這個鏡像
docker run --name b1 -it buusybox:latest
docker exec -it kvstor1 /bin/sh 交互式運行redis
docker search 搜索鏡像
docker pull 下載到本地
docker image 鏡像
docker ps -a 查看所有容器
docker start -i -a b1 啟動名為b1的容器,模式為交互式
docker container ls 或 docker ps 查看當前正在運行的容器
docker常用命令以及狀態轉換圖
鏡像
基於容器來制作鏡像
命令:docker commit -p b1 (其中b1是基於哪個容器的name)
docker tag 鏡像的ID 鏡像名稱:tag 如下圖所示:
基於現有容器來制作鏡像需要更改CMD(即啟動時運行的),假如期望需要運行容器是就運行httpd命令,可以這么來制作鏡像:
docker commit -a “xzw xiang@126.com” -c 'CMD ["/bin/httpd","-f", "-h","/data/html"]' -p b1 xzw/httpd:v0.2
制作成功后直接運行
如果想將自己制作的鏡像放到dockerhub上需要使用的命令:
docker login 登錄docker鏡像倉庫
docker push 推鏡像
docker logout 登出docker鏡像倉庫