频道栏目
首页 > 网络 > 云计算 > 正文
运行docker-composeup-d提示Nosuchimage错误
2017-03-09 09:13:00         来源:greatfeather的专栏  
收藏   我要投稿

运行docker-composeup-d提示Nosuchimage错误,刚开始接触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来删除,这样就不会出现上述的问题了。

点击复制链接 与好友分享!回本站首页
上一篇:Docker基础学习之安装部署
下一篇:Docker词汇表
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站