运行docker-compose up -d提示No such image错误

        刚开始接触docker-compose技术,今天烧了一下通过Dockerfile来启动容器。

        Dockerfile内容如下:

#基础镜像
FROM registry.cn-hangzhou.aliyuncs.com/weilai/tomcat7:latest

#维护者信息
MAINTAINER peifei@126.com

#镜像操作命令
#RUN ......

#容器启动命令
CMD "sh /usr/local/tomcat7/bin/startup.sh"

        docker-compose.yml内容如下:

tomcat7:
  build: .
  volumes:
    - /media/root/DockerDisk/webapps:/usr/local/tomcat7/webapps
  ports:
    - "8080:8080"

        然后在终端中运行docker-compose up -d后经过了漫长的等待终于运行成功了。

        没想到虽然运行成功了,但是却没达到我想要的效果(我是想用已有的tomcat7镜像自动启动容器并启动里面的tomcat),生成了一个新的镜像,但却没有自动启动tomcat:


        这个镜像与下面那个镜像的内容是相同的,于是我就把新生成镜像给删除了。

        这时我再将docker-compose.yml里的内容修改回原来的基于image的方式:

tomcat7:
  image: registry.cn-hangzhou.aliyuncs.com/weilai/tomcat7:latest
  volumes:
    - /media/root/DockerDisk/webapps:/usr/local/tomcat7/webapps
  ports:
    - "8080:8080"

        这时再运行docker-compose up -d后却提示如下错误:


        这就奇怪了,明明我改为使用registry.cn-hangzhou.aliyuncs.com/weilai/tomcat7:latest作为镜像来源,为什么会提示镜像sha256:0564a791bac418289213f339afde48d87c8111dbcf908148b1668cf205f836f9不存在哪?

        经过一顿苦找,终于在国外的网站上发现了解决方案。原来是因为我删除镜像的方式不对,可通过如下方式解决:

        在终端中先运行docker ps -a命令,查看容器历史启动记录:


        上图中红框内的容器就是一开始通过docker-compose+Dockerfile生成的,于是在终端中执行如下命令:


        然后再执行docker-compose up -d后终于成功了:


       这下长记性了,如果是通过docker-compose编排出的镜像,应该还通过docker-compose rm来删除,这样就不会出现上述的问题了。

       参考网址:https://github.com/docker/compose/issues/1113

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值