Docker 附加卷时设置入口点 -v

Docker setting entrypoint when attaching volume -v

以前,我能够在我的容器中将一个文件夹作为 volume 附加到我的容器中,如下所示:

docker run -it --rm -v /Users/me/Desktop/Jupyter:/home/jovyan/work -p 8888:8888 jupyter/all-spark-notebook

然而,当我运行...

docker run -it -v /Users/me/Desktop/nfscripts:/usr nextflow/nextflow /bin/bash

...我得到以下 错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/usr/local/bin/entry.sh\": stat /usr/local/bin/entry.sh: no such file or directory": unknown.

当我启动交互式会话并检查目录时,我得到了基础 / 并且我可以看到 usr 目录。

$ docker run -it nextflow/nextflow /bin/bash
$ pwd
/
$ ls
bin  dev  etc  home  lib  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

我从 Cmd 中认出了 /usr/local/bin/entry.sh,它肯定存在,因为我可以捕捉到它。

            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "ENTRYPOINT [\"/usr/local/bin/entry.sh\"]"
            ],

我不能挂载 :/usr 因为它在入口点的路径中吗?

您需要挂载指定的入口点,该入口点可以不同于您启动交互式会话的目录:

docker run -it --rm -v /Users/me/Desktop/nfscripts:/usr/local/bin/entry nextflow/nextflow /bin/bash