首页 > 网络 > 云计算 >

运行docker-composeup-d提示Nosuchimage错误

2017-03-09

运行docker-composeup-d提示Nosuchimage错误,刚开始接触docker-compose技术,今天烧了一下通过Dockerfile来启动容器。

运行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来删除,这样就不会出现上述的问题了。

相关文章
最新文章
热点推荐