ืืืืง ืืืื ืฉื ืืชืจืืื ืฉื ืกืืจืช ืืืืจืื ืขื Docker, ื ืืืจ ืขื ืขืืืื ืขื ื ืชืื ืื. ืืคืจื, ืขื ืืจืืื ืฉื Docker. ืืืืืจืื ืืื ืืฉืืืื ื ืื ืืืื ืืื ืื ืืขื ืชืืื ื ืฉื Docker ืืืื ืื ืืืืืืช ืืืืื ืฉืื ืืช. ืื ืื ื ืืกืืืช ืืืกืืจืช ืื ืื ืืื. ืชื ืื ืชืื ืื ื-Docker ืืืืืช ืืชืืืื. ืืฉ ืืจืื ืกืืืื ืฉื ืชืืืื ืื ืืขืืื, ืื-Docker ืืฉ ืืจืื ืืจืืื ืืขืืื ืขื ื ืชืื ืื.
โ
โ
โ
โ
โ
โ
ืฉืืื ืื ืฉืืืืจ ืื ืืืื ืืืืฆืขืืช ืื ืืข Docker ืืจืกื 18.09.1 โโืืืจืกืช API
ื ืืชื ืืืืกื ื ืชืื ืื ื-Docker ืืืืคื ืืื ื ืื ืงืืืข. ื ืชืืื ืขื ื ืชืื ื ืืื.
ืืืกืื ื ืชืื ืื ืืื ื
ืืงืื ืืืื ืจืื ืฉื Docker, ืืชื ืืืื ืืืจืื ืขืืืื ืขื ื ืชืื ืื ืืื ืืื ืืฉืชื ืืจืืื.
ืืืจืืจืช ืืืื, ืงืืฆืื ืฉื ืืฆืจื ืขื ืืื ืืืฉืื ืืคืืขื ืืงืื ืืืื ืจ ืืืืืกื ืื ืืฉืืื ืื ืืชื ืช ืืืชืืื ืฉื ืืืืืื. ืืื ืฉืืื ืื ืื ืืื ืืขืืื, ืืื ืฆืืจื ืืืืืืจ ืฉืื ืืืจ ืืืืื. ืื ืืืฆื ืืื ืืขืืื. ืืืคืืืงืฆืื ืคืฉืื ืฆืจืืื ืืฉืืืจ ืืช ืื ืชืื ืื ืืืืืฉืื ืืขืฉืืช ืืช ืฉืื. ืขื ืืืช, ืืืืจ ืฉืืืืื ืืคืกืืง ืืืชืงืืื, ืื ืื ืชืื ืื ืฉื ืฉืืจื ืืฆืืจื ืคืฉืืื ืื ืืืขืืื.
ืืฉื ื ืคืชืจืื ื ืืกืฃ ืืืืกืื ืงืืฆืื ืืื ืืื ื-Docker, ืืืชืืื ืืืงืจืื ืืื ืฆืจืื ืจืืช ืืืฆืืขืื ืืืืื ืืืชืจ ืืขืืืช ืื ืฉื ืืชื ืืืฉืื ืืื ืื ืื ืืืืกืื ืืืื ื ืืกืื ืืจืื. ืื ืืื ืื ืฆืจืืืื ืฉืื ืชืื ืื ืฉืืื ืืืืืกื ื ืืื ืจื ืืืชืจ ืืื ืฉืงืืื ืืงืื ืืืื ืจ, ืชืืืื ืืืืจ tmpfs ืืงืื ืืืื ืจ - ืืืกืื ืืืืข ืืื ื ืืืฉืชืืฉ ื-RAM ืฉื ืืืืจื. ืื ืืืืฅ ืืช ืคืขืืืืช ืืชืืื ืืงืจืืื ืฉื ื ืชืื ืื.
ืืขืชืื ืงืจืืืืช ืงืืจื ืฉืืฉ ืืืืกื ื ืชืื ืื ืื ืืืืจ ืฉืืืืื ืืคืกืืง ืืืชืงืืื. ืืฆืืจื ืื, ื ืฆืืจื ืื ืื ืื ืื ืืืืกืื ื ืชืื ืื ืืชืืฉื.
ืืืกืื ื ืชืื ืื ืืชืืฉื
ืืฉื ื ืฉืชื ืืจืืื ืืืืจืื ืืช ืืืจื ืืื ืื ืชืื ืื ืืืฉืจ ืืฉื ืืื ืืืืืื. ืืจื ืืืช ืืื ืืืฉืชืืฉ ืืืื ืืืืืืืช bind mount. ืขื ืืืฉื ืื, ืืชื ืืืื ืืขืืืช, ืืืฉื, ืชืืงืืื ืืืืืื ืืืืืชืืื ืืงืื ืืืื ืจ. ืชืืืืืื ืืืืืงืืื ืืืืฅ ื-Docker ืืืืื ืืขืืื ืื ืขื ื ืชืื ืื ืืืืืืกื ืื ืืชืืงืืื ืืื. ืื ื ืืื
ืืจ tmpfs ื-bind mount
ืืืกืจืื ืืช ืฉื ืฉืืืืฉ ืืืื ืืืืืืืช bind mount ืื ืฉืืฉืืืืฉ ืื ืืกืื ืืช ืืืืื ืื ืชืื ืื, ืืขืืจืช ืื ืชืื ืื ืืฉืืชืืฃ ืื ืชืื ืื ืืื ืงืื ืืืื ืจืื ืืจืืืื. ืืจืื ืืืชืจ ืืื ืืืฉืชืืฉ ืื ืคืื 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:
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 ืืืืช ืืืืืฅ ืืืชืืืืื ืืืืื?
ืืงืืจ: www.habr.com