2017-02-23 16 views
0

В настоящее время у меня есть следующий файл DockerПочему каталог создан после WORKDIR исчезают

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 

К моему suprise

  • /tmp/debug1 создается
  • /var/www/html/xxx/debug2 является не создал

Однако, если бы я пошел внутри контейнера с помощью

docker run -it xxx bash 

Что я понимаю, в том, что

  • /tmp/debug1 создается
  • /var/www/html/xxx/debug2 создается

Могу ли я знать, почему существует такое поведение, после того, как линия WORKDIR?

ответ

2

Это звучит как тома, находящиеся в игре. Можете ли вы обновить свой вопрос в своем файле?

Я предполагаю, что вы определили объем в файле создания письма, которое монтирует что-то /var/www/html

Если это так, то это было бы объяснить, что вы видите. Когда вы запускаете контейнер без компоновки, вы видите /var/www/html/xxx/debug2, потому что /var/www/html содержит контент, изначально созданный во время сборки докера. Если вы запустите его с compose, docker монтирует каталог хоста или объем докеров на /var/www/html, и в этом случае все, что изначально было там, получило «невидимый». Если ваш том/хост-каталог пуст, то /var/www/html также пуст.

Смежные вопросы