Docker 核心技術之容器與鏡像

 Docker容器與鏡像的關係

 

 

 容器提交 – docker commit

docker commit -h

做用:git

  • 根據容器生成一個新的鏡像

命令格式:docker

  • docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

命令參數(OPTIONS):centos

  • -a, --author string 做者
  • -c, --change list 爲建立的鏡像加入Dockerfile命令
  • -m, --message string 提交信息,相似git commit -m
  • -p, --pause 提交時暫停容器 (default true)

 

命令演示  (在d9e 的容器中安裝 net-tools 的包)bash

docker run -dti centos bash

docker exec d9e56 yum install -y net-tools

docker exec d9e56 ifconfig

  

 把 d9e 的容器從新生成一個新的鏡像spa

docker commit -m 'install net-tools' d9e56 centos-net:v1.0

docker images

 

查看 鏡像 歷史記錄3d

docker history centos-net:v1.0

 

容器導出 – docker export

docker export -h

 

做用:blog

  • 將容器當前的文件系統導出成一個tar文件

命令格式:string

  • docker export [OPTIONS] CONTAINER

命令參數(OPTIONS):it

  • -o, --output string 指定寫入的文件,默認是STDOUT

 

 命令演示class

docker export -o net-tools-image.tar d9e
ls

 

容器打包的導入 – docker import

docker import -h

 

做用:

  • 從一個tar文件中導入內容建立一個鏡像

命令格式:

  • docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

命令參數(OPTIONS):

  • -c, --change list 爲建立的鏡像加入Dockerfile命令
  • -m, --message string 導入時,添加提交信息

 

命令演示

docker import -m '(import) install net-tools' net-tools-image.tar centos2:v1.0

docker history centos2:v1.0

 

能夠看到 import 和 commit 都會生成一個鏡像,區別在於import 生成的是一個全新的鏡像不保留歷史的信息,而 commit 會保留歷史的信息,這點能夠經過 docker history 去查看

深刻理解Docker容器與鏡像  

鏡像的layer

 這個能夠經過 docker inspect 去查看,每對鏡像進行一次修改,都會在Layers 中增長一條記錄

 

 

 鏡像的視角

 

 

容器的Layer

 

容器的視角 

 

容器與鏡像的底層關係

 

容器的運行

 

相關文章
相關標籤/搜索