我有以下Dockerfile:
FROM continuumio/anaconda3
VOLUME /code
我使用以下命令行执行它:
docker run -it 626058fb269a --mount src="$(pwd)",target=/code,type=bind /bin/bash
但是我遇到此错误:
[FATAL tini (8)] exec --mount failed: No such file or directory
很明显,我缺少了一些东西。如果运行docker run -it 626058fb269a / bin / bash,则目录已存在,但显然未安装任何目录。我只想从容器访问我的代码。如何正确安装呢?
答案 0 :(得分:3)
docker run
会将图像名称之后的所有内容解释为命令行的“命令”部分(作为命令行参数传递给入口点(如果存在),或者直接运行),因此您的命令是>
docker run \
-it \ # Container launch options
626058fb269a \ # Image name
\ # Command and its arguments follow
--mount src="$(pwd)",target=/code,type=bind /bin/bash
您无需在Dockerfile中声明VOLUME即可将命名卷或主机目录挂载到容器中,因此自定义映像不会为您添加任何内容。我可能会建议类似的东西
docker run \
--rm -it \ # Container launch options
--mount src="$(pwd)",target=/code,type=bind \
continuumio/anaconda3 \ # Image name
/bin/bash # Command and its arguments
(最好还是在没有Docker的情况下在本地开发和测试应用程序,然后将其复制到Dockerfile中,以便您可以运行该映像,而不必强行在应用程序代码周围单独复制。)