Пути к файлам Dockerfile: что означает двоеточие?

#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:

https://docs.docker.com/storage/images/types-of-mounts-volume.png

В случае привязки монтирования

-v или --volume : Состоит из трех полей, разделенных символами двоеточия ( : ).
Поля должны располагаться в правильном порядке, и значение каждого поля не сразу очевидно.

  • В случае подключения с привязкой первым полем является путь к файлу или каталогу на главном компьютере.
  • Второе поле — это путь, по которому файл или каталог монтируется в контейнер.
  • Третье поле является необязательным и представляет собой разделенный запятыми список параметров, таких как ro, согласованный, делегированный, кэшированный, z и Z. Эти параметры обсуждаются ниже.

В случае именованного тома: первое поле является именем тома и уникально на данном хост-компьютере. Для анонимных томов первое поле опущено.

Здесь: первый аргумент — это путь, /app/: так что смонтируйте его привязкой.

Комментарии:

1. ваш ответ помог мне лучше понять это, спасибо! Я не просто полностью запутался в том, что это за крепление для привязки? Насколько я понимаю, на данный момент, как тома, так и привязки монтируются с использованием ключевого слова volume …

2. @Xen_mar Да. Я отредактировал свой ответ, чтобы включить регистр именованных томов.

3. Ах, совершенно потрясающе. Я как раз собирался написать еще один комментарий, поскольку продвинулся немного дальше. Довольно запутанно, что единственным отличием в объявлении является имя в качестве первого поля. Большое вам спасибо за то, что объяснили мне это!