🐳 ПониманиС инструкции Dockerfile VOLUME

by itisgood

Π’ΠΎΠΌΠ° Docker ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния постоянных Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ кэшам, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΆΠΈΡ‚ΡŒ дольшС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… экзСмпляров ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Π’ΠΎΠΌΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ смонтированы ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° -v ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ docker run.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ссылка Π½Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° хоста Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΌΠ° Π²ΠΎ врСмя сборки ΠΎΠ±Ρ€Π°Π·Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции VOLUME Π² Ρ„Π°ΠΉΠ»Π°Ρ… Dockerfile.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π°, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ постоянноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠΎΠ² Π² Dockerfile

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Dockerfile VOLUME создаСт Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования Ρ‚ΠΎΠΌΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ.

Π’ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы вашСго хоста Docker ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Dockerfile Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ опрСдСляСт Ρ‚ΠΎΠΌ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ /opt/app/data.

НовыС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

FROM ubuntu:22.04
VOLUME /opt/app/data

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠ°:

$ docker build -t volumes-test:latest .

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΠΌΠΎΠ²:

$ docker volume ls
DRIVER   VOLUME NAME
local    demo-volume

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ваш тСстовый ΠΎΠ±Ρ€Π°Π·:

$ docker run -it volume-test:latest
root@07be7bde68c2:/#

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ docker volume ls, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΠ°:

$ docker volume ls
DRIVER   VOLUME NAME
local    3198bf857fdcbb8758c5ec7049f2e31a40b79e329f756a68725d83e46976b7a8
local    demo-volume

Π’Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ вашСго тСстового ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ остановился:

root@07be7bde68c2:/# exit
exit

Π’ΠΎΠΌ ΠΈ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ:

$ docker volume ls
DRIVER   VOLUME NAME
local    3198bf857fdcbb8758c5ec7049f2e31a40b79e329f756a68725d83e46976b7a8
local    demo-volume

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько Ρ‚ΠΎΠΌΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ инструкции Π² Π²ΠΈΠ΄Π΅ строки, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΈΠ»ΠΈ массива JSON.

ОбС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π²Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΠΌΠ° ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:

VOLUME /opt/app/data /opt/app/config
# Π˜Π›Π˜
VOLUME ["/opt/app/data", "/opt/app/config"]

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ содСрТимого Ρ‚ΠΎΠΌΠ°

Π’ΠΎΠΌΠ° автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ содСрТимым, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ монтирования Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… этапах создания ΠΎΠ±Ρ€Π°Π·Π°:
FROM ubuntu:22.04
COPY default-config.yaml /opt/app/config/default-config.yaml
VOLUME /opt/app/config

Π­Ρ‚ΠΎΡ‚ Dockerfile опрСдСляСт Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ default-config.yaml.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ смоТСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ /opt/app/config/default-config.yaml Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, сущСствуСт Π»ΠΈ этот Ρ„Π°ΠΉΠ».

ИзмСнСния содСрТимого Ρ‚ΠΎΠΌΠ°, сдСланныС послС инструкции VOLUME, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Π°ΠΉΠ» default-config.yaml всС Π΅Ρ‰Π΅ доступСн послС запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° rm поступаСт послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ /opt/app/config ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ Ρ‚ΠΎΠΌ.

FROM ubuntu:22.04
COPY default-config.yaml /opt/app/config/default-config.yaml
VOLUME /opt/app/config
RUN rm /opt/app/config/default-config.yaml

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ инструкций VOLUME ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Π’ΠΎΠΌΠ°, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции VOLUME, автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ имя с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ…ΡΡˆΠ΅ΠΌ.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΌΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вашими ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ появлСниС Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΎΠΌΠΎΠ², Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Ρ‚ΠΎΠΌΠ° Π½Π° Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ docker run -v, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° явно ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /opt/app/config ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, дСлая ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ VOLUME Π² Dockerfile излишнСй.

$ docker run -it -v config:/opt/app/config volumes-test:latest

Когда слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструкции VOLUME?

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ VOLUME ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ использованиС пСрсистСнтности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠ±Ρ€Π°Π·Π°Ρ…, ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… сСрвСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

ИспользованиС инструкций VOLUME ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π±Π΅Π· нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ -v для примСнСния.

VOLUME Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ для ΠΏΡƒΡ‚Π΅ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², хранящих постоянныС Π΄Π°Π½Π½Ρ‹Π΅.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этих инструкций Π² ваш Dockerfile позволяСт Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π³Π΄Π΅ ваш ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ…Ρ€Π°Π½ΠΈΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

НСдостатки VOLUME

VOLUME Π½Π΅ лишСн нСдостатков.

Бамая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ взаимодСйствуСт со сборками ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

ИспользованиС ΠΎΠ±Ρ€Π°Π·Π° с инструкциСй VOLUME Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° вашСй сборки Π±ΡƒΠ΄Π΅Ρ‚ вСсти сСбя Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ, Ссли Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ содСрТимоС Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ монтирования Ρ‚ΠΎΠΌΠ°.

Досадная ΠΎΠΏΠ»ΠΎΡˆΠ½ΠΎΡΡ‚ΡŒ, описанная Ρ€Π°Π½Π΅Π΅, всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ°: эффСкты ΠΊΠΎΠΌΠ°Π½Π΄ послС инструкции VOLUME Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ VOLUME Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅, всС Π² вашСм собствСнном Dockerfile ΠΈΠ΄Π΅Ρ‚ послС инструкции, ΠΈ Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π—Π° кулисами, запуск Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° для сборки создаст Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΎΠΌ Π½Π° вашСм хостС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ сборки. ИзмСнСния Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ скопированы ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π·.

АвтоматичСскоС ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуациях.

Иногда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±Π΅Π· Ρ‚ΠΎΠΌΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² цСлях ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

VOLUME устраняСт эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автоматичСскоС ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ накоплСнию большого количСства ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚ΠΎΠΌΠΎΠ² Π½Π° хостС, Ссли ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, рСгулярно Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Dockerfile VOLUME ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΠΎΠ² Π²ΠΎ врСмя сборки ΠΎΠ±Ρ€Π°Π·Π°.

Они Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π°, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ постоянноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ опустит Ρ„Π»Π°Π³ -v Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker run.

см. Ρ‚Π°ΠΊΠΆΠ΅:

You may also like

Leave a Comment