1. 程式人生 > >Docker基於已有的鏡像制新的鏡像

Docker基於已有的鏡像制新的鏡像

用戶名 密碼 commit 制作

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]
/* */:[email protected]eleted: sha256:31758d7d9e60b3c77bad4f477faae5e9dc87d3d5d16a085263f2f6de58a381adDeleted: sha256:77757027951c22c480289ef98c6109c6d7df4e0bae9bda5db1e43436159de9e5

3.3 獲取鏡像

docker pull bage88/firstimage

3.4 運行鏡像

docker run -d -p 8010:80 bage88/firstimage

查看結果:

技術分享


Docker基於已有的鏡像制新的鏡像