docker build -t .失败后,遇到奇怪问题

 凌子的夏天_952 发布于 2022-10-25 10:43

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 c4283c57025d is using it, use -f to force
Error response from daemon: No such image: -f
FATA[0000] Error: failed to remove one or more images

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4283c57025d 77d786364ebafecb599657f5d96053e5fb6829f22129e5002b3e3eddb672b7ae:latest "/bin/sh -c '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
c4283c57025d 77d786364ebafecb599657f5d96053e5fb6829f22129e5002b3e3eddb672b7ae: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构建镜像时,其实是基于基础镜像创建容器,并在这个容器中运行第一条指令,之后将保存为镜像,并删除容器。之后又基于这个新镜像创建容器,执行第二条指令,保存为镜像,删除容器,删除上一个镜像(只删除了镜像信息,镜像层没有删除)。如果反复,知道最后一个指令结束,得出的就是目标镜像了。

    那么如果构建过程中出现了意外,那么就会残留下一个意外退出的容器,以及它所依赖的上一层镜像。其实这些都是并没有什么*用的东西,我们直接删除即可。因为容器依赖了镜像,删除镜像前先删除容器。

    2022-10-26 23:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有