đĸ āĻĄāĻāĻžāϰ āĻāϞāĻŋāĻāĻŽ (Docker Volumes)

āĻĄāĻāĻžāϰ āĻāϞāĻŋāĻāĻŽ (Docker Volumes) : āĻĄāĻāĻžāϰ āĻāϞāĻŋāĻāĻŽ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ, āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āĻāĻŋāϤāϰā§āϰ āĻĄā§āĻāĻž āĻšā§āϏā§āĻ āĻŽā§āĻļāĻŋāύ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžā§āĨ¤
āϝāĻž āĻĄāĻāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāĻŦāĻ āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻĄā§āĻāĻžāĻā§ āĻĒāĻžāϰāϏāĻŋāϏā§āĻ (āϏā§āĻĨāĻžāϝāĻŧā§āĻāĻžāĻŦā§ āϰāĻžāĻāĻž) āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§, āϝāĻžāϤ⧠āĻāύā§āĻā§āĻāύāĻžāϰ āĻĄāĻŋāϞāĻŋāĻ āĻšāϞā§āĻ āĻĄā§āĻāĻž āĻšāĻžāϰāĻŋāϝāĻŧā§ āύāĻž āϝāĻžāϝāĻŧāĨ¤
VOLUME ["/app/logs"]
âĄī¸ āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāĻāĻŋ Dockerfile-āĻ āĻĻāĻŋāϞā§, docker āϝāĻāύ āĻāĻŽā§āĻ āϤā§āϰāĻŋ āĻāϰāĻŦā§, āϤāĻāύ āĻāĻžāύāĻŦā§ /app/logs āĻĢā§āϞā§āĻĄāĻžāϰāĻāĻŋāĻā§ host machine-āĻāϰ āĻāĻāĻāĻŋ āϞā§āĻā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
Volume-āĻāϰ āĻāĻžāĻ:
- Container-āĻāϰ āĻāĻŋāϤāϰā§āϰ āĻā§āύāĻ āĻĢā§āϞā§āĻĄāĻžāϰ (āϝā§āĻŽāύ:
/app/user-data
,/app/logs
) āĻā§ āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰā§āϰ (host machine) āĻāĻāĻāĻž āĻĢā§āϞā§āĻĄāĻžāϰā§āϰ āϏāĻžāĻĨā§ mount āĻŦāĻž āĻā§ā§āĻž āϞāĻžāĻāĻŋā§ā§ āĻĻā§āĻā§āĻž āĻšā§āĨ¤
đ¯ āĻāϤ⧠āĻāĻŋ āĻšā§?
â Container-āĻāϰ āĻāĻŋāϤāϰā§āϰ āĻĢāĻžāĻāϞ/āϞāĻ (āϝā§āĻŽāύ success.log āĻŦāĻž error.log) â āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ⧠āϰāĻžāĻāĻž āĻšā§āĨ¤
⤠āĻĢāϞ⧠container āĻĄāĻŋāϞāĻŋāĻ āĻšāϞā§āĻ āĻĄā§āĻāĻž āĻĨāĻžāĻā§āĨ¤
â āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ⧠āĻĢā§āϞā§āĻĄāĻžāϰ⧠āĻāĻŋāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ â container āϏā§āĻāĻž āϏāĻā§āĻā§ āϏāĻā§āĻā§ āĻĒā§ā§ā§ āϝāĻžā§āĨ¤
⤠āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āĻā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻĻā§āĻāĻž āϝāĻžāϝāĻŧ (development-āĻāϰ āĻāύā§āϝ āĻā§āĻŦ āĻāĻžāĻā§āϰ)āĨ¤
đĻ Volumes āĻāϰ āĻĻā§āĻ āϧāϰāĻŖ āϰā§ā§āĻā§:
đš Anonymous Volume:
Docker āύāĻŋāĻā§ Volume āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻāĻŋ āύāĻžāĻŽāĻŦāĻŋāĻšā§āύ āĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝāĨ¤
āĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāϞ⧠(remove āĻāϰāϞā§) āĻāĻ āĻāϞāĻŋāĻāĻŽāĻ āϏāĻā§āĻā§ āϏāĻā§āĻā§ āĻŽā§āĻā§ āϝāĻžā§āĨ¤
đš Named Volume:
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āύāĻŋāĻā§ āύāĻžāĻŽ āĻĻāĻŋā§ā§ āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻāĻŋ āϏāĻšāĻā§ āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āϝāĻžā§āĨ¤
āĻāĻāĻŋ āĻāύāĻā§āĻāύāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻĨāĻžāĻāϞā§āĻ āĻāύāĻā§āĻāύāĻžāϰ āĻŽā§āĻā§ āĻĢā§āϞāϞ⧠āĻāϞāĻŋāĻāĻŽ āĻŽā§āĻā§ āϝāĻžā§ āύāĻžāĨ¤
āĻāĻ āĻāϞāĻŋāĻāĻŽā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻ
āύā§āϝ āĻāύāĻā§āĻāύāĻžāϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻšā§āĨ¤
āĻŦāĻŋāώ⧠| Anonymous Volume | Named Volume |
đš āύāĻžāĻŽ | āĻā§āύ⧠āύāĻžāĻŽ āĻĨāĻžāĻā§ āύāĻž | āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āύāĻŋāĻā§ āύāĻžāĻŽ āĻĻā§ā§ |
đš āϏā§āώā§āĻāĻŋ āĻšā§ āĻāĻŋāĻāĻžāĻŦā§ | Docker āϏā§āĻŦā§āĻāĻā§āϰāĻŋā§āĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰ⧠| āĻāĻĒāύāĻŋ āύāĻŋāĻā§ docker volume create āĻĻāĻŋā§ā§ āϤā§āϰāĻŋ āĻāϰā§āύ |
đš āϞā§āĻā§āĻļāύ | āϞā§āĻā§āĻļāύ āĻāĻžāύā§āύ āύāĻž (Docker āύāĻŋāĻā§ āĻ āĻŋāĻ āĻāϰā§) | āϞā§āĻā§āĻļāύ Docker āĻ āĻŋāĻ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āύāĻžāĻŽ āĻĻāĻŋā§ā§ āĻā§āύā§āύ |
đš āĻĒāϰāĻŋāĻāĻžāϞāύāĻž (Management) | āϏāϰāĻžāϏāϰāĻŋ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āĻāĻ āĻŋāύ | docker volume āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋā§ā§ āϏāĻšāĻā§ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āϝāĻžā§ |
đš āĻŦā§āϝāĻŦāĻšāĻžāϰ | āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻŦāĻžāϰā§āϰ āĻāύā§āϝ āĻ āϏā§āĻĨāĻžā§ā§ āϏā§āĻā§āϰā§āĻ | āĻŦāĻšā§āĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ, āĻĒāĻžāϰāϏāĻŋāϏā§āĻā§āύā§āĻ āĻĄā§āĻāĻž āϰāĻžāĻāĻžāϰ āĻāύā§āϝ āĻāĻžāϞ⧠|
docker run -p 5000:5000 --name ts-container --rm -v ts-docker-logs:/app/logs ts-docker:v2
đš Explanation (in short):
-p 5000:5001 â Maps host port 5000 to container port 5001
--name ts-container â Names the container ts-container
--rm â Automatically removes the container after it stops
-v ts-docker-logs:/app/logs â Mounts a named volume (ts-docker-logs) to
/app/logs in the container
ts-docker:v2 â Uses the image ts-docker with tag v2
Subscribe to my newsletter
Read articles from Ashik Bhuyan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ashik Bhuyan
Ashik Bhuyan
A forward-thinking software engineer. who can work as a web developer in dynamic environments. Strong knowledge of MERN Stack with vast experience in building Web Applications, using React.js, Next.js, and Redux for the client side, Node.js/Express for the server side, and MongoDB, SQL Server for the database.