#docker #docker-compose
#docker #docker-составить
Вопрос:
В файлах Dockerfiles и docker-compose я часто натыкаюсь на два обозначения.
Пример docker-compose:
volumes:
- ./app/:/usr/src/app/
Пример Dockerfile
COPY ./Pipfile /usr/src/app/Pipfile
Второе означает: возьмите файл / папку из каталога my machines ./Pipfile и скопируйте его в изображение в каталоге / usr / …? Но что означает первое?
Спасибо.
Ответ №1:
В случае привязки монтирования
-v
или--volume
: Состоит из трех полей, разделенных символами двоеточия (:
).
Поля должны располагаться в правильном порядке, и значение каждого поля не сразу очевидно.
- В случае подключения с привязкой первым полем является путь к файлу или каталогу на главном компьютере.
- Второе поле — это путь, по которому файл или каталог монтируется в контейнер.
- Третье поле является необязательным и представляет собой разделенный запятыми список параметров, таких как ro, согласованный, делегированный, кэшированный, z и Z. Эти параметры обсуждаются ниже.
В случае именованного тома: первое поле является именем тома и уникально на данном хост-компьютере. Для анонимных томов первое поле опущено.
Здесь: первый аргумент — это путь, /app/: так что смонтируйте его привязкой.
Комментарии:
1. ваш ответ помог мне лучше понять это, спасибо! Я не просто полностью запутался в том, что это за крепление для привязки? Насколько я понимаю, на данный момент, как тома, так и привязки монтируются с использованием ключевого слова volume …
2. @Xen_mar Да. Я отредактировал свой ответ, чтобы включить регистр именованных томов.
3. Ах, совершенно потрясающе. Я как раз собирался написать еще один комментарий, поскольку продвинулся немного дальше. Довольно запутанно, что единственным отличием в объявлении является имя в качестве первого поля. Большое вам спасибо за то, что объяснили мне это!