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
無法刪除,因為某個容器在用它
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
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4283c57025d 77d786364ebafecb599657f5d96053e556829657f5d95053e5 apt-get 28 minutes ago Exited (100) 4 minutes ago reverent_goodall
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 build
建構鏡像時,其實是基於基礎鏡像建立容器,並在這個容器中執行第一條指令,之後將儲存為鏡像,並刪除容器。之後又基於這個新鏡像創建容器,執行第二條指令,保存為鏡像,刪除容器,刪除上一個鏡像(只刪除了鏡像訊息,鏡像層沒有刪除)。如果反复,知道最後一個指令結束,得出的就是目標鏡像了。那麼如果建置過程中出現了意外,那麼就會殘留下一個意外退出的容器,以及它所依賴的上一層鏡像。其實這些都是沒有什麼*用的東西,我們就直接刪除即可。因為容器依賴了鏡像,刪除鏡像前先刪除容器。