αα αααα»αααααααααααααααααααΆααααααααααααααΈαααααααΆααα’αααΈ Docker ααΎαααΉααα·ααΆαα’αααΈααΆαααααΎααΆαααΆαα½ααα·ααααααα ααΆαα·αααα’αααΈααα·ααΆα Docker α αα αααα»ααααααΆααααΆααααα ααΎααααααααααααααααααααΆαααααααααααα·ααΈ Docker ααΆαα½αααΉαααΆαααααααααααΆαααα’αΆα ααα·αααααΆαα ααΎαααΉααα·αααΆαα ααααΈαααααααΈααααα ααΈαααααα α’αα»ααααΆαα±αααα·αααααααα αααα»α Docker ααΆααααΏααααα ααΆαααααΏααααααΆα αααΎααα αααα»ααα·ααααα α αΎα Docker ααΆααα·ααΈααΆα αααΎαααΎααααΈααααΎααΆαααΆαα½ααα·ααααααα
β
β
β
β
β
β
ααΌαα
αααΆαααΆαααααΆαααααααααΌαααΆααααα
ααααααααΎαααΆαααΈα Docker αααα 18.09.1 ββββαα·ααααα API
αα·αααααααα αααα»α Docker α’αΆα ααααΌαααΆααααααΆαα»αααΆααααααα’αΆαααα α¬ααΆα’α α·ααααααααα α αΌαα αΆααααααΎαααΆαα½ααα·ααααααααααααα’αΆααααα
ααΆααααα»ααα·ααααααααααααα’αΆαααα
ααΆααα·ααΈααΈααααΆαααΎααααΈααααααααααα·ααααααααααααα’αΆαααααα αααα»α Docker containersα
ααΆαααααΆαααΎα α―αααΆαααααααααΎαααααααααα·ααΈαααααααΎαααΆααααα»ααα»αααΊαααααααΌαααΆααααααΆαα»ααααα»ααααααΆαααα»ααααα’αΆα αααααααΆαα ααΎααααΈα±ααααααααΆααααααααΎαααΆα αα·αα αΆαααΆα αααααααα ααΆααααααααα’αααΈαα·ααααααααα ααΆααααα ααααααα·αααΈαααΆαα αααααα·ααΈααααΆααααααααΌαααΆααααααΆαα»ααα·αααααα α αΎαααααααααΎααΏαααααΆαααααα½αααααααΆα αααααΆαααΆαααΆααααα αααααΆααααΈαα»αααΊααααααααΆα αα·αααααααααααΆααααααΆαα»ααααα»ααα·ααΈααΆααααααααααααααΉααααΆαααΆαααααα
ααΆααααα»αα―αααΆαααααααα’αΆαααααα αααα»α Docker ααΊααΆαααααααααΆααα½αααααααααααααααααααααααΆααααααΈαααα’αααααααΌαααΆαααααα·ααααααααααααΎαααΆαααΆαα’αααΈαααα’αΆα αααααα ααΆααααααααΎααααααΆααααα»ααα·ααααααααααααα’αΆαααααααααααΆαα ααααα·αααΎα’ααααα·αααααΌαααΆααα·ααααααααααα’αααααααΌαααΆααααααΆαα»αααΌαααΆααα»αααΊαααααααα α’αααα’αΆα ααααΆαααα αα»αααΊααα tmpfs αααααΆαααααααααα»αααααααΆαααααααα’αΆαααααααααααΎ RAM αααααααΆαααΈαα ααΆααΉααααααΎαααααΏαααααααα·ααααα·ααΆαααααα αα·αα’αΆααα·ααααααα
ααΆααΆααΏααααΎαα‘αΎαααααα·ααααααααααΌααααααΆαα»α ααΌααααΈαααααααΆααααΈαα»αααΊααααααααΆαα ααΎααααΈααααΎααΌα αααα ααΎαααααΌαααΆαααααααΆααααα»ααα·ααααααααΆααααΆααα
ααΆααααα»ααα·ααααααααΆααααΆαα
ααΆααα·ααΈααΈααααΆαααΎααααΈααααΎα±αααα·ααααααααΆαα’αΆαα»ααΆαααΌαααΆαα’αΆαα»ααΆααα»αααΊαααα αα·ααΈαα½αααΊααααΎαα
αα
αααα·ααααΆα
αααααΆααα ααΆαα½αααΉααα·ααΈααΆαααααααα α’αααα’αΆα
ααααα§ααΆα ααα ααααΈαα·ααα·ααα
αα»αα ααααΎαααΆααα
ααΆααααα
Docker ααααΉαα’αΆα
ααααΎαααΆαααΆαα½ααα·ααααααααααααααΆαα»ααααα»α Folder αααααααααααα αααβα αΎαβααΆβαααα
ααΆαααα‘αΎα tmpfs αα·αα
αααααΆαα
αα»ααα·ααααα·ααααΆαααααΎααααΆαααα αα αααα·ααααΆ bind mount ααΊααΆααΆαααααΎααααΆααααααααΆααααΎα±αααααα»αααααΆααααααΆαααααα»ααα»ααα·αααααα ααΆαααααααα·αααααα ααΆαα ααααααααα·αααααααααα»αα αααααα»αααΊαααααΆα αααΎαα ααΆαααααΎαααΆααααα»αααΆαααααΎ Docker volumes αααααΆααααΆααααα»ααα·ααααααααΆααααΆααα
Volumes Docker
ααααα·αααα‘ααααΊααΆααααααααα―αααΆααααααΆαααΈααΆαααα ααΎαααΆαααΈααααα ααΆααααα αα»αααΊαααα ααα·ααΆαααααΌαααΆααααααΎα αα·ααααααααααααα Docker α αααααΊααΆαααααααααααααα·ααααΆαααααααα·ααΆα Dockerα
- αα½αααΆααΆαααααααΆααααααΆαα»αααααααΆαααΆα’α α·ααααααααα
- αα½αααΆα―αααΆαααα αΎααααααα ααααΈαα»αα
- αα½αααα’αΆα ααααΌαααΆαα ααααααααααΆααα»ααααααααααΆα
- αα½αααα’αα»ααααΆαα±ααα’ααααααα αααΆαα’αΆα αα·αααΆαααααααα·ααααααααααααααααααα·αααααΆαα
- ααα·ααΆαα’αΆα ααααΌαααΆαααΆαααα ααΎααααΆαααααα’ααααααααααααΆαααααΈα ααααΆαα
- αα½αααα’αΆα ααααΌαααΆαα’αα·αααααΈαα
- αα½αααα’αΆα ααααΌαααΆαααααααααααα
- αα»αααΊαααα’αΆα αααα ααααααΆααα ααα½ααααααΆααααΆαα»αααααα·ααΆαααΆαα½αααΉααα·ααααααα
- αα½αααΆααΆααααα½ααααααΆααααΆαααααΎαααααα
ααΌα αααα’αααα’αΆα ααΎαααα·ααΆα Docker ααΆααααααααααααααα·ααα’ααα αΆαααα α αΌααα·ααΆαα’αααΈαααααααααΎααα½αααΆα
ααΆααααααΎαααα·ααΆα
ααα·ααΆαα’αΆα ααααΌαααΆααααααΎααααααααΎααααΎ Docker α¬ API α
αααααΊααΆααΆαααααΆααα αααα»α Dockerfile αααα’αα»ααααΆαα±ααα’ααααααααΎαααααα·αααα‘αααα αααα αΆααααααΎααα»αααΊαααα
VOLUME /my_volume
αα αααααααΎααΆαααααΆαααααααααααΆ Docker αααααΆααααΈαααααΎααα»αααΊαααααΉααααααΎαααααα·αααα‘αααααααΆααα·αααααααααααΆααα½α α αΎααα αααα»αααΈααΆαααααααΆααααααΆααα α αααΆαααΆααααα·αααΎα’ααααααααΎαααααα·αααα‘αααααααααΎ Dockerfile ααΆαα·αααααΎα±ααα’αααααΌαααααΆαααΈαααααΌαααΆααααα»αααΆααααααΆααα ααα»α ααααααααααααα·αααα‘αααααααα
α’αααααα’αΆα αααααΎαααΆααααα»α Dockerfile αααααααΎαααααα JSON αααααα
ααΎαααΈαααααα ααα·ααΆαα’αΆα ααααΌαααΆααααααΎααααααααΎα§ααααααααααΆααααΆααααααααΆ ααααααααααα»αααΊααααααα»αααααΎαααΆαα
ααααΎααΆαααΆαα½αααα·ααΆαααΈαααααΆααααΆααααααααΆ
β ααΆααααααΎαααααα·αααα‘αα
α’αααα’αΆα αααααΎαααααα·αααα‘ααα―αααΆααααααααααΎααΆααααααααΆααΆααααααα
docker volume create β-name my_volume
βαααααααααααααΆαα’αααΈααα·ααΆα
ααΎααααΈααΎααααααΈααα·ααΆα Docker ααΌαααααΎααΆααααααααΆααΆααααααα
docker volume ls
α’αααα’αΆα αα»αααααα·ααΆαααΆααααΆααααΌα αααα
docker volume inspect my_volume
β ααΆααα»αααααα·αααα‘αα
α’αααα’αΆα αα»αααααα·αααα‘ααααΌα αααα
docker volume rm my_volume
ααΎααααΈαα»αααΆαααΆααα’ααααααα·αααααΎααααα»αααΊααα α’αααα’αΆα ααΆααα ααααΆααααααααΆααΆααααααα
docker volume prune
αα»αααααα»αααΆα Docker ααΉααα½αα’αααα±αααααααΆααααααα·ααααα·ααΆααααα
ααααα·αααΎααααα·αααα‘ααααααΌαααΆαααααΆααααΆαα½ααα»αααΊααα ααα·ααΆαααααα·αα’αΆα αα»αααΆααα αα αΌαααααα»ααααααααΌαααααΆααααΌαααΆααα»αα αααα»ααααααΆαα½αααααΆααα αααααΈααΆαα»αααααΌαααΆαααα ααααααα Docker αα·αααααααααααΈααΏααααααα ααααα·αααΎααΏααααααΎαα‘αΎα α’αααα’αΆα ααααΎααΆααααααααΆααΆααααααα
docker system prune
ααΆααααΌαααΆααα ααΆα‘αΎαααΎααααΈαααα’αΆαααααΆα Docker α αααααΆααααΈααααα·ααααα·ααΆααααααααΆααα α’ααααα½αααα’αΆα αα»αααΆααααααααΆαααΆαααααααΆααΈαα»ααα·αααααΉαααααΌαα
ααα --mount αα·α --volume
ααΎααααΈααααΎααΆαααΆαα½αααα·ααΆα αα
αααα’αααα α
ααΆααααααααΆ docker
ααΆααΉαααΆααα’αααααΉαααααΌαααααΎαααα α§ααΆα ααα ααΎααααΈαααααΎαααααα·αααα‘ααααα‘α»αααααααααΎααα»αααΊααα α’αααα’αΆα
ααααΎααααααααα
docker container run --mount source=my_volume, target=/container/path/for/volume my_image
αα
αααααα»ααΆα (αα αΌααααααααΆα 2017) αααααΆαα·ααΆααααααΆαααα·αααΆα --volume
. ααααΌα αααααΆαα·ααα (ααΆααα’αΆα
ααααΎααΆααααααα’ααααααΆαα αααααΆααααααΆααΎααα
ααΌα
-v
) ααααΌαααΆαααααΎαααααΆαααα»αααΆα
ααααα‘αα αα·αααα --mount
- αα
αααα»αααα·ααΆααΆα Docker Swarm α ααααααΆαααΆααααααα·αααααΉα Docker 17.06 ααα --mount
α’αΆα
ααααΌαααΆαααααΎαα
αααα»αααααΆααΈαααΌααΆαα½αα
αα½αααααααααΆααααΆαα
αααααααΎαααααΆαα· --mount
α
ααα½ααααα·αααααααααααααααααααΌααααααααΆαααα
αααα»αααΆααααααααΆααΎαα‘αΎα ααα»αααααααααΆααα ααα»ααααΆα
αααΎα ααΆααΆααΆααααααΎααααα»αααΆαααααΎααααα·αααααα α αΎααα·αααα --volume
. αααααΆαα· --mount
ααΊααΆααααααΆααααα½αααααααα’αα»ααααΆαα±ααα’αααααααΎααΆαααΆαα½αααααΆαααα α¬αααααΆαααααααΎααααααα·ααΈαααααΆααααα·αααα‘ααα ααααα ααααααααΆααααααΆααααα½αααααΎααΆαααΆαα½αα
αα
αααα»αα§ααΆα ααααααααΆαααααΆααααααΆααααααααΆααααααααααα·αααααα Docker α’αααα’αΆα
ααΎαα§ααΆα αααααΆα
αααΎαααααΆαααααΎααααΆααααα -v
. αα
αααααααΆααΆααααααααΆααααααααΆααΆααααααααααΆαααααα½αα’ααα ααΌαα
αα
αΆαααΆαααααΆαα· --mount
ΠΈ --volume
ααααΎαααααααααΆαααΆαααααααααααααααΆα αααααΊα’ααααα·αα’αΆα
αααα½αααΆαααα -v
αα
ααΎ --mount
αα·αααα½αααΆααααα»αααΆαααΆαα
ααΆααα»αααααΆααααΆαααααΆα --mount
ΠΈ --volume
αααααΊαα
αααααααΎααα --volume
αααΆαααΆααααααααΆααα’ααααααΌαααΆααααααΌααα½αααααΆαααα»αααΆααααα½α α αΎααα
αααααααΎ --mount
αααΆαααΆααααααααααΌαααΆααααααα
αα
αααααααΎααΆαααΆαα½α --mount
αααΆαααΆααααααβααααΌαβααΆαβααααΆαβααΆβααΌβαααααβαααααΉα αααβααΊβααΆβα αΆααβααΌα
βααΆ key=value
. ααΌααΆαααααααααΌαααΆααααααααααααααΆαααααα αααααΊααΆαααααΎααααααααΎααΆααΌαα
--mount
:
type
- ααααααααααα ααααααααααΆαααααααααααΌαααααΆα’αΆα ααΆα α ,ααα·ααΆα α¬tmpfs . ααΎααααα»ααα·ααΆαα’αααΈααα·ααΆααα ααΈααα αααααΊααΎαα αΆααα’αΆααααααααΎαααααvolume
.source
- αααααααααα αααααΆααβααα·ααΆαβαααβααΆαβαααααβαααβααΊβααΆβαααααβααβααα·ααΆαα αααααΆααααΆαααααα·αααΆαααααα ααααααα·αααααΌαααΆααααααΆααααα ααΆα’αΆα ααααΌαααΆαααααΈααsrc
.destination
- ααααΌααααα―αααΆαα¬ααααααΌαααΆααααααα αααα»ααα»αααΊαααα αααααΉααααα’αΆα ααααΌαααΆαααααΈααdst
α¬target
.readonly
- ααα‘αΎαααααα·αααα‘αααααααΆααααααααααΆααααααΆαα’αΆα . ααΆαααααΎααααΆαααααααααΊααααα α α·ααα α αΎαααααΆααααααααΆαα½ααααααααΌαααααααα ααΆααα
αααααΊααΆα§ααΆα αααααααΆαααααΎααααΆαα --mount
ααΆαα½αααΉααααααΎαααΆα
αααΎαα
docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image
αααααα
αααααΊααΆααΆααααααααΆαααααΆααααααααααα½αα ααα½ααααα’αααα’αΆα ααααΎαα αααααααΎααΆαααΆαα½α Docker volumesα
docker volume create
docker volume ls
docker volume inspect
docker volume rm
docker volume prune
αααααΊααΆαααααΈαααααααΎααααααααΎααΆααΌαα
αααααΆαα --mount
αααα’αΆα
α’αα»ααααααΆααα
αααα»αααΆααααααααΆαααααααα docker run --mount my_options my_image
:
type=volume
source=volume_name
destination=/path/in/container
readonly
α₯α‘αΌααααααΎαααΆααααα
αααααααΈ Docker αααα αΎα ααΆαααααααααααααΌααα·ααΆαααΆαααααΈαααΈα’αααΈαααααααααα’αααααα Docker α’αΆα
αα
αααααΆαααααα
α’αααα’αΆαααΆααΈαααα‘αΆαα! ααΎα―αααΆα Docker α’αααΈαααα’αααααΉαααααΆααααααΆααα’αααα αΆααααααΎαααα?
ααααα: www.habr.com