Π’ΠΎΠΌΠ° 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.
ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅: