LINUX.ORG.RU
ФорумAdmin

Docker: как изменить адрес по умолчанию именованного тома?

 , , ,


0

2

В корне проекта лежит файл docker-compose.yum:

version: '3.5'
services:
    db:
        container_name: my_db
        image: mysql
        ports:
            - "3306:3306"
        volumes:
            - "mysql:/var/lib/mysql"
        environment:
            MYSQL_ROOT_PASSWORD: 12345
            MYSQL_DATABASE: test
            MYSQL_USER: vlad
            MYSQL_PASSWORD: 12345

volumes:
    mysql:

После docker-compose up -d --build на хосте создается соответствующий том в каталоге: /var/lib/docker/volumes/

Вопрос: Как изменить этот адрес по умолчанию на свой?

Т.е. я хочу чтобы этот том создавался не по адресу /var/lib/docker/volumes/ , а по адресу, например, /home/vlad/my_project/mysql. Хочу хранить все файлы проекта в одном месте!

Спасибо!!!



Последнее исправление: NkDev (всего исправлений: 2)

Ответ на: комментарий от dib2

вроде бы нет, тс-у надо переопределить стандартный каталог /var/lib/docker, внутри которого докер создаёт своё, специфичное для storage driver.

ТС, останавливаешь docker daemon, перемещаешь из /var/lib/docker куда тебе нужно, делаешь симлинк /var/lib/docker -> твой новый путь, стартуешь docker

pod ★★
()
Ответ на: комментарий от pod

делаешь симлинк /var/lib/docker

а для другого проекта - меняешь симлинк? так себе. данные лучше хранить рядом с проектом

dib2 ★★★★★
()
Ответ на: комментарий от dib2

Для какого другого? /var/lib/docker это системный каталог самого докера, в котором он создаём свой стафф, в том числе named volumes. Его, вроде бы, можно изменить ключами к dockerd, но можно и просто симлинком

pod ★★
()

Используй именованные тома в проде, а у себя на машине пробрасывай каталоги, как сказали выше.

Докер компоуз умеет в оверлеи. Один файл для прода, второй для дева, в котором только дев-специфичные настройки.

aol ★★★★★
()
Ответ на: комментарий от pod

Для какого другого?

иногда люди работают над разными проектами, прикинь?

но можно и просто симлинком

не учи людей трешаку, нельзя /var/lib/... в /home/XXX/my_project/ линковать.

mount bind докера решает задачу в полной мере.

dib2 ★★★★★
()
Ответ на: комментарий от dib2

ТС спросил про сладкое, вы ему отвечаете про солёное. Человеку нужно перенести место, куда докер складывает named volumes, а вы ему говорите использовать mount bind - это разные вещи. А куда переносить named volumes - в /home или в другое место, ТС решит для себя сам.

pod ★★
()

Если докер не старый, то надо править файл /etc/docker/daemon.json:

{
    "graph": "/home/vlad/my_project/"
}
Изначально (у меня) файла daemon.json нет. Старый докер может искать этот файл в директориях /etc/default/docker (debian) и /etc/sysconfig/docker (centos)

SR_team ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.