docker鏡像與容器管理(二)

鏡像: 靜態的只讀文件,是一個只讀的模板。

容器: 是從鏡像創建的一個運行實例,容器是帶有運行時需要的可寫文件層。


鏡像工作原理:
    啓動一個新的容器時,docker會加載鏡像,在鏡像之上添加一個讀寫層,
    並將鏡像中的目錄複製一份到/var/lib/docker/containers/容器ID的目錄下,
    容器內修改已存在的文件,會將該文件從只讀層複製到讀寫層,並覆蓋只讀層的文件,實現了文件系統隔離,
    當刪除容器後,讀寫層的數據將會刪除,鏡像不變。

鏡像文件存儲:
    docker相關文件:     /var/lib/docker/目錄下。
    /var/lib/docker/overlay2/容器ID/diff     #每層與父層之間的文件差異。

鏡像管理命令:
    獲取: docker pull  imagename:tag
    上傳: docker push  倉庫名稱
    查找: docker search imagename:tag
    列出本地鏡像: docker images
    修改已有鏡像: 
	docker run -itd --name test02  ubuntu:16.04   運行容器
	docker attach test02   進入容器
	安裝相關服務。
	docker commit -m "說明信息"  -a "指定用戶信息"  容器ID  倉庫名:tag
	
    用Dockerfile構建新鏡像: docker build
    刪除鏡像:     docker rmi  imagename
    刪除容器:     docker rm containername
    直接刪除一個運行中的容器:   docker rm  -f  containername
    批量刪除容器:     docker rm -v $(docker ps -aq -f status=exited)


    導出鏡像:     docker save -o  包名  image:tag
    導出正在運行的容器:  docker export -o centos7 test01

    導入鏡像: docker load  -i  包名
    導入正在運行的容器爲鏡像: # docker import  centos7  test01:7

    注意:
    export,import :
       導出後再導入的鏡像會丟失所有的歷史,無法回滾之前的層。
    save,load :
       保存後再加載的鏡像沒有丟失歷史和層,可持久化鏡像,可以做到層回滾。


###容器管理:

    ##查看容器:	
    docker ps :列出當前所有正在運行的container
    docker ps -l :列出最近一次啓動的container
    docker ps -a :列出所有的container
    docker ps -q :列出最近一次運行的container ID

    ##運行容器:
    運行容器: docker run -itd  image:tag  /bin/bash
    	    -itd: i 交互, t 僞終端, d 後臺運行。


    ##進入正在運行的容器:
        #docker run -itd --name test2 test01:latest /bin/sh
        #docker exec -it test2 /bin/bash
    
        或者:
        #docker attach test2
        使用ctrl+p+q 快捷鍵退出。

        或:
        nsenter工具:
         使用nsenter連接到容器,需要先找到容器進程的PID:
         #PID=$(docker  inspect --format "{{ .State.Pid }}" containerid)
         #nsenter --target $PID  --mount  --uts --ipc --net --pid

    查看docker版本:  docker version
    查看系統(docker)層面的信息:  docker info

    指定容器總是重啓:
        docker run -itd --name test3  --restart=always centos:7

    查看狀態(前臺運行): docker stats
    查看狀態(後臺運行): docker stats --no-stream

    獲取容器輸出信息並查看容器運行日誌: 
    	docker logs  containerid

    終止容器:   docker stop
    強行終止容器:  docker kill containerid

    終止容器後,可以用docker start命令重啓容器。
    先終止,再重啓容器: docker restart 命令。


    查看image或container的底層信息:
    	docker inspect <image|container>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章