đŸšĸ āĻĄāĻ•āĻžāϰ āĻ­āϞāĻŋāωāĻŽ (Docker Volumes)

Ashik BhuyanAshik Bhuyan
2 min read

āĻĄāĻ•āĻžāϰ āĻ­āϞāĻŋāωāĻŽ (Docker Volumes) : āĻĄāĻ•āĻžāϰ āĻ­āϞāĻŋāωāĻŽ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ, āϝāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āύāĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇āϰ āĻĄā§‡āϟāĻž āĻšā§‹āĻ¸ā§āϟ āĻŽā§‡āĻļāĻŋāύ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
āϝāĻž āĻĄāĻ•āĻžāϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻāĻŦāĻ‚ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻĄā§‡āϟāĻžāϕ⧇ āĻĒāĻžāϰāϏāĻŋāĻ¸ā§āϟ (āĻ¸ā§āĻĨāĻžāϝāĻŧā§€āĻ­āĻžāĻŦ⧇ āϰāĻžāĻ–āĻž) āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇, āϝāĻžāϤ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĄāĻŋāϞāĻŋāϟ āĻšāϞ⧇āĻ“ āĻĄā§‡āϟāĻž āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āύāĻž āϝāĻžāϝāĻŧāĨ¤

VOLUME ["/app/logs"]

âžĄī¸ āĻāχ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāϟāĻŋ Dockerfile-āĻ āĻĻāĻŋāϞ⧇, docker āϝāĻ–āύ āχāĻŽā§‡āϜ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇, āϤāĻ–āύ āϜāĻžāύāĻŦ⧇ /app/logs āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰāϟāĻŋāϕ⧇ host machine-āĻāϰ āĻāĻ•āϟāĻŋ āϞ⧋āϕ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

Volume-āĻāϰ āĻ•āĻžāϜ:

  • Container-āĻāϰ āĻ­āĻŋāϤāϰ⧇āϰ āϕ⧋āύāĻ“ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ (āϝ⧇āĻŽāύ: /app/user-data, /app/logs) āϕ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ (host machine) āĻāĻ•āϟāĻž āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ mount āĻŦāĻž āĻœā§‹ā§œāĻž āϞāĻžāĻ—āĻŋā§Ÿā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§ŸāĨ¤

đŸŽ¯ āĻāϤ⧇ āĻ•āĻŋ āĻšā§Ÿ?

  1. ✅ Container-āĻāϰ āĻ­āĻŋāϤāϰ⧇āϰ āĻĢāĻžāχāϞ/āϞāĻ— (āϝ⧇āĻŽāύ success.log āĻŦāĻž error.log) → āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āϰāĻžāĻ–āĻž āĻšā§ŸāĨ¤

    ➤ āĻĢāϞ⧇ container āĻĄāĻŋāϞāĻŋāϟ āĻšāϞ⧇āĻ“ āĻĄā§‡āϟāĻž āĻĨāĻžāϕ⧇āĨ¤

  2. ✅ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āύ → container āϏ⧇āϟāĻž āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇ āĻĒā§‡ā§Ÿā§‡ āϝāĻžā§ŸāĨ¤

    ➤ āϰāĻŋāϝāĻŧ⧇āϞ-āϟāĻžāχāĻŽ āϕ⧋āĻĄ āφāĻĒāĻĄā§‡āϟ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ (development-āĻāϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦ āĻ•āĻžāĻœā§‡āϰ)āĨ¤

đŸ“Ļ Volumes āĻāϰ āĻĻ⧁āχ āϧāϰāĻŖ āĻ°ā§Ÿā§‡āϛ⧇:

🔹 Anonymous Volume:
Docker āύāĻŋāĻœā§‡ Volume āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āύāĻžāĻŽāĻŦāĻŋāĻšā§€āύ āĻ“ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝ⧋āĻ—ā§āϝāĨ¤
āĻāϟāĻŋ āĻ•āύāĻŸā§‡āχāύāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϞ⧇ (remove āĻ•āϰāϞ⧇) āĻāχ āĻ­āϞāĻŋāωāĻŽāĻ“ āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇ āĻŽā§āϛ⧇ āϝāĻžā§ŸāĨ¤

🔹 Named Volume:
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āύāĻŋāĻœā§‡ āύāĻžāĻŽ āĻĻāĻŋā§Ÿā§‡ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϏāĻšāĻœā§‡ āĻĒ⧁āύāσāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ“ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
āĻāϟāĻŋ āĻ•āύāĻŸā§‡āχāύāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻĨāĻžāĻ•āϞ⧇āĻ“ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϞ⧇ āĻ­āϞāĻŋāωāĻŽ āĻŽā§āϛ⧇ āϝāĻžā§Ÿ āύāĻžāĨ¤
āĻāχ āĻ­āϞāĻŋāωāĻŽā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻ…āĻ¨ā§āϝ āĻ•āύāĻŸā§‡āχāύāĻžāϰ⧇āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĻšā§ŸāĨ¤

āĻŦāĻŋāώ⧟Anonymous VolumeNamed 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
0
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.