为什么在WORKDIR之后创build的目录消失了
目前,我有以下的docker文件
FROM ubuntu:14.04 ADD . /var/www/html/xxx RUN mkdir -p /tmp/debug1 WORKDIR /var/www/html/xxx RUN mkdir -p /var/www/html/xxx/debug2
docker-compose up -d
我通过使用以下命令进入容器
docker exec -it xxx_xxx_1 bash
令我惊奇
-
/tmp/debug1
被创build -
/var/www/html/xxx/debug2
未创build
但是,如果我走进容器内使用
docker run -it xxx bash
我知道的是
-
/tmp/debug1
被创build -
/var/www/html/xxx/debug2
被创build
我可以知道为什么有这样的行为,在WORKDIR之后?
这听起来像是在播放音量。 你能用你的撰写文件更新你的问题吗?
我假设你已经在构build文件中定义了一个卷,它把某些内容挂载到/var/www/html
如果这是真的,那么这将解释你所看到的。 当你不使用compose运行容器时,你会看到/var/www/html/xxx/debug2
因为/var/www/html
包含了最初在/var/www/html/xxx/debug2
生成时创build的内容。 如果用compose运行它,docker将一个主机目录或一个docker卷挂载到/var/www/html
,在这种情况下,原来那里的所有东西都会被“隐藏”。 如果你的volume / host-dir是空的,那么/var/www/html
也是空的。