【问题标题】:Error when trying to create container with mounted volume尝试创建具有已安装卷的容器时出错
【发布时间】:2018-07-23 12:31:13
【问题描述】:

我正在尝试在容器上挂载一个卷,以便我可以访问正在运行容器的服务器上的文件。使用命令

docker run -i -t 188b2a20dfbf -v /home/user/shared_files:/data ubuntu /bin/bash

导致错误

docker: Error response from daemon: OCI runtime create failed:
container_linux.go:296: starting container process caused "exec: \"-v\": 
executable file not found in $PATH": unknown.

我不确定在这里做什么。基本上,我需要能够从主机服务器访问脚本和一些数据文件。

【问题讨论】:

    标签: docker docker-container docker-volume


    【解决方案1】:

    docker 命令行是顺序敏感的。在镜像名称之后,传递的所有内容都是在容器内运行的命令。对于 docker,run 命令之后与预期参数不匹配的第一件事被假定为图像名称:

    docker run -i -t 188b2a20dfbf -v /home/user/shared_files:/data ubuntu /bin/bash
    

    这会尝试在您的图像 188b2a20dfbf 中运行 -v 命令,因为 -t 没有任何价值。

    docker run -i -t  -v /home/user/shared_files:/data 188b2a20dfbf /bin/bash
    

    这将在同一图像 188b2a20dfbf 中运行 bash

    如果您想在 ubuntu 中运行您的命令(从您的示例中不清楚您尝试执行的操作),请从命令中删除 188b2a20dfbf 图像名称:

    docker run -i -t -v /home/user/shared_files:/data ubuntu /bin/bash
    

    【讨论】:

      【解决方案2】:

      显然,在您的 .go 脚本的第 296 行,您指的是无法找到的东西。检查您的环境变量以查看它们是否包含该文件的路径,该文件是否包含在卷中,等等。

      【讨论】:

        【解决方案3】:

        188b2a20dfbf 传递给-t 是不对的。 -t 用于获取容器的伪 TTY 终端:

        $ docker run --help
        ...
        -t, --tty         Allocate a pseudo-TTY
        

        运行docker run -i -t -v /home/user/shared_files:/data ubuntu /bin/bash。它对我有用:

        $ echo "test123" > shared_files
        
        $ docker run -i -t -v $(pwd)/shared_files:/data ubuntu /bin/bash
        root@4b426995e373:/# cat /data 
        test123
        

        【讨论】:

          猜你喜欢
          • 2019-07-25
          • 2019-05-02
          • 2020-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多