recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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
<none> <none> 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发现容器停止了。 启动容器成功,连接连不上,同时容器自动停止,这是什么情况?

有人遇到过?

黄舟黄舟2770 Il y a quelques jours891

répondre à tous(1)je répondrai

  • ringa_lee

    ringa_lee2017-04-25 09:05:00

    Lorsque vous utilisez docker build pour créer une image, vous créez en fait un conteneur basé sur l'image de base, exécutez la première instruction dans ce conteneur, puis l'enregistrez en tant qu'image et supprimez le conteneur. Créez ensuite un conteneur basé sur cette nouvelle image, exécutez la deuxième commande, enregistrez-la en tant qu'image, supprimez le conteneur et supprimez l'image précédente (seules les informations de l'image sont supprimées, le calque d'image n'est pas supprimé). Si cela est répété, jusqu'à ce que la dernière instruction soit terminée, l'image cible sera obtenue.

    Si un accident se produit pendant le processus de construction, un conteneur se fermera de manière inattendue et l'image de la couche supérieure dont il dépend. En fait, ce sont toutes des choses inutiles, on peut les supprimer directement. Étant donné que le conteneur dépend de l'image, supprimez d'abord le conteneur avant de supprimer l'image.

    répondre
    0
  • Annulerrépondre