我有一个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
在所有卷准备好后执行,因此它应该可以工作。
在哪里担心我的想法?
答案 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。