停靠文件
FROM centos
RUN mkdir /test
# its ensured that sample.sh exists where the dockerFile exists & being run
COPY ./sample.sh /test
CMD ["sh", "/test/sample.sh"]
Docker运行命令:docker run -d -p 8081:8080 --name Test -v /home/Docker/Container_File_System:/test test:v1
日志输出:
sh: /test/sample.sh: No such file or directory
这里有两个问题。
- 输出显示sh:/test/sample.sh:没有这样的文件或目录
- 由于我已将主机文件夹Map到容器文件夹,因此我希望测试文件夹和sample.sh在运行后在/home/Docker/Container_File_System中可用,但这并没有发生
任何帮助都是感激不尽的。
2条答案
按热度按时间odopli941#
将文件夹从主机Map到容器时,主机文件在容器中变为可用。这意味着,如果主机具有文件a.txt,而容器具有文件b.txt,则运行容器时,文件a.txt在容器中变为可用,而文件b.txt不再可见或不可访问。
此外,文件b.txt在任何时候都无法在主机中使用。
在您的示例中,由于主机上没有sample.sh,因此在装载该目录时,容器中不再有sample.sh(这会导致错误)。您需要做的是将sample.sh文件复制到主机上的正确目录中,然后启动容器。
h7wcgrx32#
问题出在卷Map中。如果我创建一个卷并随后Map它,它工作正常,但直接Map主机文件夹到容器文件夹不起作用。
以下工作正常