尝试创建已装入卷的容器时出错

时间:2018-02-13 07:39:29

标签: docker docker-container docker-volume

我试图在容器上安装卷,以便我可以访问运行容器的服务器上的文件。使用命令

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.

我不知道该怎么做。基本上,我需要能够从主机服务器访问脚本和一些数据文件。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

传递给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