Рубрики
Uncategorized

Docker Compose Syntax: громкость или привязка крепления?

Эта статья была первоначально опубликована день ранее в HTTPS: //maximorlov.com/docker-compose-syntax-v … Tagged Docker, WebDev, Devops, Linux.

Эта статья была первоначально опубликована день ранее в https://maximorlov.com/docker-compose-syntax-volume-or-bind-mount/

Docker Compose позволяет настроить Объемы и привязать крепления используя короткий синтаксис. Несколько примеров:

./public:/usr/share/nginx/html /var/lib/postgresql/data /Некоторые/контент:/usr/share/nginx/html ~/configs:/etc/configs PostgreSQL:/var/lib/postgresql/data

Что из этого являются Объемы и которые являются связывать креплениями ?

Всякий раз, когда мне пришлось прочитать Docker-Compose.yml Файл, я должен был Посмотрите на официальную документацию или Запустите быстрый местный эксперимент выяснить Как Docker Compose будет монтировать каталоги в контейнер.

Я написал эту статью, чтобы в следующий раз вы прочитали Docker Compose файл, вы не придется угадать больше. Вы просто знать глядя на синтаксис Используется ли объем или крепление привязки за кулисами.

Различные вариации по существу Три уникальные формы Отказ Я перечислю и объясни их в этой статье ниже.

2 ключа объема в Docker-Compose.yml

Прежде чем мы поговорим о различных способах указать тома, давайте сначала уточним, какие тома ключ Мы имеем в виду. В Docker-Compose.yml , Объемы Ключ может появиться в двух разных местах.

version: "3.7"

services:
  database:
    # ...
    volumes: # Nested key. Configures volumes for a particular service.

volumes: # Top-level key. Declares volumes which can be referenced from multiple services.
  # ...

В этой статье мы поговорим о вложенный Объемы ключ. Вот где вы настраиваете тома для определенного сервиса/контейнера, такого как база данных или веб-сервер. Эта конфигурация имеет короткий (и длительный) синтаксический формат.

Короткий формат синтаксиса и его вариации

Конфигурация тома имеет короткий синтаксический формат, который определяется как:

[Источник:] Цель [: Режим]

Источник может быть именованным объемом или (относительным или абсолютным) путем на хост-системе. Цель — абсолютный путь в контейнере. Режим — это вариант монтажа, который может быть только для чтения или чтения. Кронштейны означают, что аргумент является необязательным.

Эта необуженность приводит к трем уникальным вариациям, которые вы можете использовать для настройки объемов контейнера. Docker Compose Smart о распознавании того, какой сорт используется и использовать ли объем или крепление привязки.

  1. Нет источника — например. /var/lib/postgresql/data

Когда указывается только цель, без источника, Docker Compose создаст анонимный Справочник и установите его как объем до целевого пути внутри контейнера.

Путь каталога на хост-системе по умолчанию /var/lib/docker/тома//_ данные , где является случайным идентификатором, назначенным объему как его имя.

  1. Источник без пути — например. postgresql-data:/var/lib/postgresql/data

Если источник присутствует, и это не путь, то составные докеры предполагают, что вы относитесь к именованному объему. Этот объем должен быть объявлен в том же файле на верхнем уровне Объемы ключевая декларация.

Верхний уровень Объемы Ключ всегда объявляет тома, никогда не связывайте крепления. У монтажей Bind нет имени, и они не могут быть названы.

  1. Источник пути — например. /Некоторые/контент:/usr/share/nginx/HTML или ./public:/usr/share/nginx/html.

Если источник представляет собой путь, абсолютный или родственник, Pocker Compose будет связывать монтировать папку в контейнер. Относительные пути, начинающиеся с Отказ или .. относительно расположения Docker-Compose.yml Отказ

Крепление связных обеспокоена для контейнеров базы данных, поскольку это делает их менее портативными. Крепление привязки специфична для хост-системы, и Docker не управляет им. Официальные документы имеют раздел о Тома против крепления Это объясняет различия между двумя более подробно.

Суммируя это

Docker Compose позволяет вам настроить тома, используя короткую строку синтаксиса. Независимо от того, заканчиваете ли вы громкостью или креплением привязки, зависит от того, какой краткий изменение синтаксиса вы используете.

Когда вы не указываете источник, Docker Compose создаст анонимный том. Если источник не является путь, Docker Compose предполагает, что источник является именованным объемом. Источники, которые являются относительными или абсолютными путями, связываются в контейнер.

Если вам понравилось этот тип статьи, которая раскрывает основную функцию, вы можете найти мою статью о Инструкция по выставлению В докерфиле интересно. Я уточняю несколько заблуждений вокруг разоблачения порта и объяснить, что делает выставляя, и не делает.

Оригинал: «https://dev.to/maximization/docker-compose-syntax-volume-or-bind-mount-8ka»