首页  >  问答  >  正文

dockerfile - docker run 报错文件路径不存在

我是刚接触docker的小白,今天试着用dockerfile 构建一个tomcat镜像
结果在docker run 镜像时 报错

 /bin/sh: /usr/local/tomcat/bin/startup.sh: No such file or directory

我的dockerfile 文件内容如下: 请高手指点一下。谢谢

# tomcat
#
# VERSION       1.0

# 使用centos作为基准镜像
FROM centos

MAINTAINER lilin

# 使用root用户
USER root

ADD ./jdk-8u111-linux-x64.rpm /root

ADD ./tomcat /usr/local


#set environment variable
ENV JAVA_HOME /root/jdk-8u111-linux-x64
ENV PATH $JAVA_HOME/bin:$PATH

# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行
ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -F /usr/local/tomcat/logs/catalina.out

# 对外(其他容器)开放8080端口
EXPOSE 88
为情所困为情所困2706 天前931

全部回复(2)我来回复

  • 仅有的幸福

    仅有的幸福2017-04-25 09:05:20

    拥有dockerfile 不一定就有镜像文件。 你可以通过 docker build -t ${tagName} . 来构建image文件。 然后再通过镜像文件创建CONTAINER, 最终能够运行的是你的container。 对于你当前的例子你可以通过如下命令完成上述过程:

    
    sudo docker build -t mytomcat .
    sudo docker run -p 8080:8080 mytomcat  //在这里你可以加上特定参数
    

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-25 09:05:20

    在自己编写Dockerfile之前,最好先实践一次Dockerfile的构建过程。
    按自己的逻辑,通过基础镜像创建并进入容器,把想要在Dockerfile中写入的命令自己先执行一遍,看看是否存在问题,并解决这些问题,之后汇总所有命令写成Dockerfile。
    而不是直接纸上谈兵写出一个Dockerfile出来。

    这里错误以及很明显了,Tomcat的启动脚本/usr/local/tomcat/bin/startup.sh不存在,所以容器不能启动起来。请先自己在容器中实践一次Tomcat的搭建,看看Tomcat应该怎样启动,启动缺少哪些问题,把所有问题解决了,自己搭建的Tomcat能跑起来了,再把这些东西写成Dockerfile。空写Dockerfile看似很厉害很节约实践,其实很纯很浪费时间。

    回复
    0
  • 取消回复