Ответ 1
Обновлено апрель 2017 года
Поведение изменилось с тех пор, как я написал исходный ответ. Теперь согласуется, указывает ли правая сторона именованного тома как myvolume
или путь на хосте, например /var/lib/myapp
.
Например,
volumes:
- /dir/on/host:/var/www/html
если /dir/on/host
не существует, он создается на хосте, а пустой контент монтируется в контейнере в /var/www/html
. Все, что было в /var/www/html
до этого, недоступно.
---- старый ответ -----------
Раздел volumes:
в вашей компоновке docker перезаписывает все, что находится в каталоге /var/www/html
.
Существуют две ситуации:
-
Объем существует
В этом случае содержимое тома затеняет все, что находится в каталоге dst.
Например:
volumes: - /dir/on/host:/var/www/html
-
Объем не существует
Если
myvolume
не существует (например, именованный том), содержимое /var/www/html будет скопировано в том в первый разvolumes: - myvolume:/var/www/html
В случае 2, если вы попытаетесь снова установить тот же объем на каком-либо контейнере, он будет следовать за случаем 1.
volumes:
- myvolume:/var/www/html
В этом случае (при условии, что myvolume уже был создан) содержимое /var/ww/html будет перезаписано (затенено) тем, что находится в myvolume
.
Официальный документ подробно рассматривается https://docs.docker.com/compose/compose-file/#/volumes-volume-driver