初次尝试使用 docker, 成功地 pull 了一个 ubuntu 镜像, docker run -it ubuntu /bin/bash
也运行起来了,但是,遇到一个问题: 以 paste 命令为例,假如说,我在 host 的当前工作目录下有两个文件 f1 和 f2, 现在我想调用 ubuntu 镜像里的 paste 命令将这两个文件拼接在一起,我试了运行
docker run ubuntu /usr/bin/paste f1 f2
结果是报错说找不到文件 f1 .
那么问题来了,是否可能运行 image 里的某个命令来读取 host 下的某个文件作为命令的输入呢?如果可以,该怎么做? 还是说,docker 就不是用来干这个的?
P.S:纯新手,上面的描述之中有概念不对的地方还请指出,谢谢大家.
1
MrGba2z 2015-10-20 23:55:33 +08:00 1
应该是你的 container 接触不到你 host 的磁盘文件
你可以把它复制到这个 container 的 filesystem 里 http://stackoverflow.com/questions/20813486/exploring-docker-containers-file-system |
2
dalang 2015-10-21 00:03:54 +08:00 1
有两个方法
1. 定制一个自己的 docker image ,把 f1 f2 两个文件 ADD 到自己的 customized image 2. 把你的工作目录挂在到 docker container 里 |
3
owwlo 2015-10-21 01:23:21 +08:00 1
楼上提到的第二种方法:
&> docker run -v /folder/on/host:/dest/path/in/container ubuntu /usr/bin/paste f1 f2 |