【发布时间】:2020-02-18 09:54:48
【问题描述】:
这是我的 Dockerfile,简化版。原文件为https://github.com/gremo/docker-folder-mirror/blob/master/Dockerfile:
FROM alpine:latest
COPY ./docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
当我在本地运行我的图像时(假设标签是folder-mirror:latest)一切正常:
docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" folder-mirror:latest
但是,如果我尝试运行映像目录(来自 Docker Hub):
docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" gremo1982/folder-mirror
...它给了我以下错误:
C:\Program Files\Docker\Docker\resources\bin\docker.exe: 错误 来自守护进程的响应:OCI 运行时创建失败: container_linux.go:346:启动容器进程导致“exec: \"docker-entrypoint.sh\": $PATH 中找不到可执行文件": 未知。
这是我的第一个 Docker 映像,所以我很确定……我错过了一些东西。事实上,如果我检查我得到的远程图像:
/ # ls -la /usr/local/bin/
total 12
drwxr-xr-x 1 root root 4096 Feb 18 2020 .
drwxr-xr-x 1 root root 4096 Jan 16 22:52 ..
-rw-r--r-- 1 root root 890 Feb 18 2020 docker-entrypoint.sh
那是我的入口点不可执行。为什么?那为什么它在本地工作呢?
【问题讨论】:
-
你确定
docker-entrypoint.sh有适当的权利吗? -
好吧,其实我改错了,因为错了。似乎找不到可执行文件。为什么?可执行文件在那里 (
/usr/local/bin) 但它没有x标志。那么为什么它在本地工作呢? -
很可能您使用的是不同的图像。使用镜像 ID 而非标签更好地运行您的容器,以便您可以看到差异。
标签: docker