docker container unable to start with error: no such file or directory
docker container unable to start with error: no such file or directory
我使用以下 Dockerfile
创建一个 docker 图像
FROM java:8-jdk
ENV DOCKER_HOME /docker
ENV CRAWLER_HOME /docker/crawler
RUN groupadd crawler && useradd -g crawler crawler
RUN mkdir -p ${DOCKER_HOME}
RUN mkdir -p ${CRAWLER_HOME}
COPY ./ ${CRAWLER_HOME}
RUN ls -la ${CRAWLER_HOME}/*
RUN chown -R crawler:crawler ${DOCKER_HOME} && chmod -R 755 ${DOCKER_HOME}
WORKDIR $CRAWLER_HOME
ENTRYPOINT [ "/docker/crawler/docker/Entrypoint.sh" ]
当我 运行 没有 -v 选项的图像时它工作正常(docker 运行 sampleimage:1.0)。但是当我 运行 与 -v 它给出了以下错误
docker run -v ~/docker:/docker sampleimage:1.0
docker: Error response from daemon: OCI runtime create failed: container_linux.go:367:
starting container process caused: exec: "/docker/crawler/docker/Entrypoint.sh": stat
/docker/crawler/docker/Entrypoint.sh: no such file or directory: unknown.
ERRO[0000] error waiting for container: context canceled
在构建图像时,我试图在 CRAWLER_HOME 中列出文件,但 Entrypoint.sh 文件存在。 运行ning.
时无法找出为什么没有抛出这样的文件或目录
/docker/crawler/docker/Entrypoint.sh is not present in the host but present in the image.
使用与在 Linux 中安装文件系统相同的内核方法在其他地方使用相同的内核方法安装卷。当您挂载到包含内容的目录之上时,只要挂载存在,这些内容就不可见。对该目录的所有访问都会转到挂载的文件系统。这意味着您不会将图像中的内容与主机上的内容合并,而只会看到卷中的内容。
半例外是命名卷挂载。在这种情况下,命名挂载在第一次使用图像内容时被初始化。然后继续前进,那个命名的 mount 行为相同,隐藏图像的内容,认为它不那么明显,因为图像中的文件被复制到卷中。请注意,此初始化仅在指定卷为 empty/new 且容器已创建时发生,而不会在每次使用该卷时 运行 发生,因此您不会在稍后 运行 自动。
标准建议是将数据与应用程序分开,将它们放在不同的文件夹中。然后为数据安装一个卷,并在映像中包含应用程序 binaries/scripts。
我使用以下 Dockerfile
创建一个 docker 图像FROM java:8-jdk
ENV DOCKER_HOME /docker
ENV CRAWLER_HOME /docker/crawler
RUN groupadd crawler && useradd -g crawler crawler
RUN mkdir -p ${DOCKER_HOME}
RUN mkdir -p ${CRAWLER_HOME}
COPY ./ ${CRAWLER_HOME}
RUN ls -la ${CRAWLER_HOME}/*
RUN chown -R crawler:crawler ${DOCKER_HOME} && chmod -R 755 ${DOCKER_HOME}
WORKDIR $CRAWLER_HOME
ENTRYPOINT [ "/docker/crawler/docker/Entrypoint.sh" ]
当我 运行 没有 -v 选项的图像时它工作正常(docker 运行 sampleimage:1.0)。但是当我 运行 与 -v 它给出了以下错误
docker run -v ~/docker:/docker sampleimage:1.0
docker: Error response from daemon: OCI runtime create failed: container_linux.go:367:
starting container process caused: exec: "/docker/crawler/docker/Entrypoint.sh": stat
/docker/crawler/docker/Entrypoint.sh: no such file or directory: unknown.
ERRO[0000] error waiting for container: context canceled
在构建图像时,我试图在 CRAWLER_HOME 中列出文件,但 Entrypoint.sh 文件存在。 运行ning.
时无法找出为什么没有抛出这样的文件或目录/docker/crawler/docker/Entrypoint.sh is not present in the host but present in the image.
使用与在 Linux 中安装文件系统相同的内核方法在其他地方使用相同的内核方法安装卷。当您挂载到包含内容的目录之上时,只要挂载存在,这些内容就不可见。对该目录的所有访问都会转到挂载的文件系统。这意味着您不会将图像中的内容与主机上的内容合并,而只会看到卷中的内容。
半例外是命名卷挂载。在这种情况下,命名挂载在第一次使用图像内容时被初始化。然后继续前进,那个命名的 mount 行为相同,隐藏图像的内容,认为它不那么明显,因为图像中的文件被复制到卷中。请注意,此初始化仅在指定卷为 empty/new 且容器已创建时发生,而不会在每次使用该卷时 运行 发生,因此您不会在稍后 运行 自动。
标准建议是将数据与应用程序分开,将它们放在不同的文件夹中。然后为数据安装一个卷,并在映像中包含应用程序 binaries/scripts。