docker build -t .失敗後,遇到奇怪問題
黄舟
黄舟 2017-04-25 09:03:00
0
1
871

Dockerfile

FROM ubuntu
RUN apt-get update && apt-get install -y mysql-server php5 php5-xdebug

建立失敗,因為找不到幾個套件
docker build -t docker_image1 .

E: Package 'php5' has no installation candidate
E: Unable to locate package php5-xdebug

此操作產生了一個沒名字的image
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
77d786364eba 25 minutes ago 122 MB

無法刪除,因為某個容器在用它
docker rmi 77d7 -f
Error response from daemon: Conflict, cannot delete 77d786364eba because the container c4283c57025 is srrorm image : -f
FATA[0000] Error: failed to remove one or more images

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4283c57025d 77d786364ebafecb599657f5d96053e556829657f5d95053e5 apt-get 28 minutes ago Exited (100) 4 minutes ago reverent_goodall

docker start c428

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4283c57025dd latest "/bin/sh -c 'apt-get 28 minutes ago Up 2 seconds reverent_goodall

啟動容器後,為何連不上?

試過很多次了,都不行。 是否只能刪除容器和鏡像,不能基於c428鏡像做修改麼?

剛才明明顯示已經啟動的,為何連不上呢?

docker attach c428
FATA[0000] You cannot attach to a stopped container, start it first

此時docker ps發現容器停止了。 啟動容器成功,連線連不上,同時容器自動停止,這是什麼情況?

有人遇過?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(1)
左手右手慢动作

使用docker build建構鏡像時,其實是基於基礎鏡像建立容器,並在這個容器中執行第一條指令,之後將儲存為鏡像,並刪除容器。之後又基於這個新鏡像創建容器,執行第二條指令,保存為鏡像,刪除容器,刪除上一個鏡像(只刪除了鏡像訊息,鏡像層沒有刪除)。如果反复,知道最後一個指令結束,得出的就是目標鏡像了。

那麼如果建置過程中出現了意外,那麼就會殘留下一個意外退出的容器,以及它所依賴的上一層鏡像。其實這些都是沒有什麼*用的東西,我們就直接刪除即可。因為容器依賴了鏡像,刪除鏡像前先刪除容器。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!