Docker鏡像可以理解為運行在Docker容器中的一個組件,本節將會帶領大家學會Docker鏡像的下載、搜索、查看、添加刪除等一系列操作。Docker在運行容器前需要本地存在對應的鏡像,如果鏡像不存在本地,Docker會嘗試從默認的遠程倉庫Docker Hub下載。
一、獲取鏡像:
1、Docker從網絡上下載鏡像的格式為:
1
|
docker pull [NAME]:[TAG] |
其中TAG即為標簽,如果不指定標簽的話,那么默認會下載最新版本的鏡像。
比如從Docker Hub中下載最新的ubuntu操作系統:
1
|
docker pull ubuntu |
則docker會從Docker Hub中下載最新版本的ubuntu。
2、指定倉庫下載鏡像:
如果覺得在Docker Hub下載鏡像太慢的話,可以在其它倉庫下載鏡像,只需要在下載的鏡像前加入指定倉庫的url即可
1
|
docker pull [REPOSITORY] /ubuntu |
3、使用鏡像:
因為已經下載鏡像到本地了,所以可以隨時使用,下面是使用該ubuntu鏡像來運行ubuntu中的bash應用:
1
|
docker run -t -i ubuntu /bin/bash |
輸入exit即可退出bash應用。
二、查看鏡像:
1、命令為:
1
|
docker images |
使用上述命令可以看出本地存在的所有鏡像文件,其中,
REPOSITORY代表來自哪個倉庫,比如從Docker Hub下載ubuntu,那么直接顯示ubuntu,如果是從其它倉庫中下載的ubuntu,那么會顯示
REPOSITORY/ubuntu
TAG代表鏡像的標簽
IMAGE ID代表鏡像的唯一ID
CREATED代表創建時間
VIRTUAL SIZE代表鏡像的大小
2、為鏡像設置標簽
為了方便在工作中使用鏡像,可以使用docker tag命令為本地鏡像打標簽,標簽可以看做是一個別名,一個鏡像可以有多個標簽,但只能有一個ID
1
|
docker tag [NAME]:[Old TAG] [NAME]:[New TAG] |
會將本地的鏡像上增加一個新的標簽,即New TAG,比如:
1
|
docker tag ubuntu:latest ubuntu:happyheng |
此將本地的標簽為latest的ubuntu打了一個新的標簽,為happyheng。
當然,打了標簽后,本地的鏡像不會有任何改變,只是有了一個新的標簽而已。
3、查看鏡像的詳細信息:
1
|
docker inspect [IMAGE ID] |
此可以根據鏡像的id查看此鏡像的詳細信息
三、搜索鏡像
1
|
docker search [NAME] |
其會返回鏡像的關鍵字,包括鏡像名字、描述、星級、是否官方創建、是否自動創建等。
四、刪除鏡像
1、使用鏡像的標簽來刪除鏡像:
1
|
docker rmi [NAME]:[TAG] |
注意使用標簽來刪除時,如果一個鏡像有兩個標簽,那么只刪除一個是不會刪除鏡像的,但如果只剩下一個標簽,那么刪除此標簽會將鏡像也刪除
2、使用鏡像ID來刪除鏡像:
1
|
docker rmi [ID] |
注意如果有容器在使用鏡像,那么是不能刪除成功的。
五、創建鏡像:
創建鏡像的方法有三種,分別為:
基于已有鏡像的容器創建
基于本地模板導入
基于Dockerfile創建
1、基于已有鏡像的容器創建:
該方法主要是使用docker commit [OPTIONS] [Container ID] [NAME]:[TAG]
注意CONTAINER ID是容器的id,而不是鏡像的id,因為鏡像是在容器中運行中發生改變,所以要為容器的id。
比如
1
2
3
|
docker run -ti ubuntu:latest /bin/bash root@c8ee80e08468:/ # touch test root@c8ee80e08468:/ # exit |
注意此時容器的id為c8ee80e08468,所以commit提交鏡像時,命令為:
1
|
docker commit -m "add a new file" -a "newbee" c8ee80e08468 ubuntu:add |
此為將修改的鏡像提交到本地倉庫中,其中提交的tag為ubuntu:add
其中:
-a : 作者信息
-m : 提交的信息
-p : 提交時暫停容器運行
可以發現,這種方式與Git很相似。
六、存出和載入鏡像:
可以使用docker save和docker load命令來存儲和載入鏡像。
1、存出鏡像:
1
|
docker save -o xxx. tar [NAME]:[TAG] |
比如我想把鏡像tag為ubuntu:add的鏡像保存為tar包,那么就可以使用
1
|
docker save -o ubuntu_add. tar ubuntu:add |
其中,當前終端在哪個目錄,tar就保存到哪
2、載入鏡像:
1
|
docker load --input ubuntu_add.tar |
可以將上述目錄的tar鏡像載入進來。
七、上傳鏡像
可以使用docker push命令將鏡像上傳至倉庫,默認上傳到Docker Hub官方倉庫,當然需要登錄:
1
|
docker push [NAME]:[TAG] |
即可將本地的鏡像上傳上去
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/happyheng/article/details/53868653