23 април, 2024

Стивън Търнър, инженер на Docker, току-що сподели няколко най-добри практики, за да подпомогне на разработчиците да разберат споделянето на файлове между Docker контейнер и локален хост и как неговата производителност варира в различните операционни системи. 

В Docker Desktop има два механизма. Те споделят част от локалната файлова система с контейнер, а именно свързване и именувани томове. Потребителите могат да копират част от файловата си система в собствената файлова система на контейнера.

Копирането на файлове в контейнер определено не е желан начин, по който искате да споделите кода си. Следователно, ако искате да споделите код, първо трябва да го редактирате. В статията на InfoQ, Търнър обяснява, че свързващите елементи са най-гъвкавото решение, но тяхната производителност е по-ниска от споделените томове.

“В естеството на виртуализацията винаги има неизбежни малки разходи при преминаване на границата между хост – VM. Той е съвсем малък, но в среда за разработка с огромно изходно дърво и много четения и записвания, той се добавя и може видимо да повлияе на производителността.”

ЗАБЕЛЕЖКА: Този проблем съществува само на машини с macOS и Windows, работещи с Docker, тъй като Linux има директен достъп до мониторната за свързване файлова система.

Освен това, ето няколко критерия, които Turner предлага, които помагат на потребителите да разберат кога да използват свързване на свързване или споделени томове.

Монтирането на свързване е опцията, когато искаме да споделим код, който трябва да редактираме. Това обаче може да бъде проблем за много големи хранилища, където трябва да извършваме голям брой операции. В тези случаи потребителите могат да опитат дублиране, като използват решения на трети страни като Mutagen и docker-sync.

Монтирането на свързване обаче определено не е правилната опция за неща като бази данни, дървета на зависимости или библиотеки, кешове и лог файлове. Следователно във всички тези случаи потребителите ще бъдат по-добре да използват споделени томове.

Въпреки това Търнър отбелязва, че тези неща може да се променят, благодарение на Virtiofs, който е специално проектиран за споделяне на файлове между хост и VM, наличен в предварителен преглед на Docker Desktop за macOS.

Тагове: , , , , , , , , , , , , , , , , , , , , , , ,
Nikoleta Yanakieva Editor at DevStyleR International