Docker基於已有的鏡像制新的鏡像
1.根據運行的容器制作鏡像
#查看所有的容器docker ps
#暫停當前容器docker pause COTNAINER-ID
#將容器運行當前狀態提交docker commit COTNAINER-ID
#根據COMMIT-ID打包容器Tag docker tag COMMIT-ID
經過以上幾個步驟,根據當前運行的容器制作鏡像就完成了。
2.上傳鏡像到Docker Hub
如果未登錄Docker Hub,需要登錄Docker Hub
docker login#輸入用戶名和密碼
推送鏡像到Docker Hub
docker push IMAGE-NAME
運行結果如下圖所示:
在Docker Hub上可以查看到我們剛剛上傳的鏡像文件,因為這個鏡像是公開的,所以現在所有人都能夠docker pull獲取該鏡像。
3.獲取上傳的鏡像並運行
因為我使用的是同一臺Ubuntu機器,我本地已經有了bage88/firstimage這個鏡像,我先要刪除該鏡像,然後再獲取。
3.1 刪除鏡像
#### 刪除鏡像docker rmi IMAGE_NAME
提示如下錯誤,有基於該鏡像的容器在運行,所以我先要刪除這個容器,再刪除鏡像。
Error response from daemon: conflict: unable to remove repository reference "bage88/firstimage"(must force) - container 25dca6040e7e is using its referenced image 31758d7d9e60
3.2 刪除容器
docker rm 25dca6040e7e(這個是容器ID)
再執行一次刪除鏡像命令:
docker rmi bage88/firstimage###結果如下,說明刪除鏡像成功Untagged: bage88/firstimage:latestUntagged: [email protected]
3.3 獲取鏡像
docker pull bage88/firstimage
3.4 運行鏡像
docker run -d -p 8010:80 bage88/firstimage
查看結果:
Docker基於已有的鏡像制新的鏡像