当码头图像有音量时,为什么我无法触摸文件?

时间:2015-07-13 10:22:20

标签: linux docker

我有一个mybase:这样的最新图片:

  FROM     ubuntu:latest                                                                                                                                                                                          
  VOLUME   /var

然后我在docker run

时遇到错误
docker run -it mybase:latest  mkdir -p /var/test && touch /var/test/test.txt
touch: cannot touch ‘/var/test/test.txt’: No such file or directory

我注意到了这个问题:Building Dockerfile fails when touching a file after a mkdir

但它并没有解决我的问题,因为它说: You can only create files there while the container is running

我认为在Docker创建该容器期间,mkdir -p /var/test && touch /var/test/test.txt在所有卷准备好后执行,因此它应该可以工作。

在哪里担心我的想法?

1 个答案:

答案 0 :(得分:1)

也许&&部分与为容器创建的shell不在同一个shell中。 (但实际上是您键入docker run命令的shell)

尝试:

docker run -it mybase:latest  sh -c 'mkdir -p /var/test && touch /var/test/test.txt'

至少这样,&&部分适用于mkdir命令的shell。