Container Lifecycle đ â
Docker āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āĻŦāύāĻāĻā§āϰ (Lifecycle) āĻāĻā§āĨ¤ āĻāĻāĻāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰ āϤā§āϰāĻŋ āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻĄāĻŋāϞāĻŋāĻ āĻšāĻā§āĻž āĻĒāϰā§āϝāύā§āϤ āĻŦāĻŋāĻāĻŋāύā§āύ āϧāĻžāĻĒā§āϰ āĻŽāϧā§āϝ āĻĻāĻŋā§ā§ āϝāĻžā§āĨ¤ āĻāĻ āϧāĻžāĻĒāĻā§āϞ⧠āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāϞ⧠āĻāĻĒāύāĻŋ āĻĄāĻāĻžāϰāĻā§ āĻāϰāĻ āĻāĻžāϞā§āĻāĻžāĻŦā§ āĻāύā§āĻā§āϰā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤
ā§§. āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻā§āĻŦāύāĻāĻā§āϰā§āϰ āϧāĻžāĻĒāϏāĻŽā§āĻš (Workflow Phases) â
āĻāĻāĻāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŽā§āϞāϤ āύāĻŋāĻā§āϰ āĻĒāĻžāĻāĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āϧāĻžāĻĒ āĻŦāĻž āĻĒā§āϰāĻā§āϰāĻŋā§āĻžāϰ āĻŽāϧā§āϝ āĻĻāĻŋā§ā§ āϝāĻžā§:
- Create: āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻĨā§āĻā§ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āϤā§āϰāĻŋ āĻāϰāĻž (
docker create)āĨ¤ - Start: āϤā§āϰāĻŋ āĻāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻŽā§āĻŽā§āϰāĻŋāϤ⧠āϞā§āĻĄ āĻāϰ⧠āϰāĻžāύ āĻāϰāĻž (
docker start)āĨ¤ - Run: āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āϝāĻāύ āĻāĻā§āĻāĻŋāĻ āĻĨāĻžāĻā§ āĻāĻŦāĻ āϤāĻžāϰ āĻā§āϤāϰā§āϰ āĻĒā§āϰāϏā§āϏāĻā§āϞ⧠āĻāϞāĻā§ (
docker run= create + start)āĨ¤ - Stop: āϰāĻžāύāĻŋāĻ āĻĒā§āϰāϏā§āϏ āĻŦāύā§āϧ āĻāϰ⧠āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋāĻā§ āĻĨāĻžāĻŽāĻŋā§ā§ āĻĻā§āĻā§āĻž (
docker stop)āĨ¤ - Remove: āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻĒā§āϰā§āĻĒā§āϰāĻŋ āĻĄāĻŋāϞāĻŋāĻ āĻāϰ⧠āĻĻā§āĻā§āĻž (
docker rm)āĨ¤
⧍. āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āϏā§āĻā§āĻāϏāĻŽā§āĻš (Container States) â
āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠docker ps -a āĻĻāĻŋāϞ⧠āĻāĻĒāύāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏā§āĻā§āĻ (Status) āĻĻā§āĻāϤ⧠āĻĒāĻžāύāĨ¤ āĻĒā§āϰāϧāĻžāύ āϏā§āĻā§āĻāĻā§āϞ⧠āĻšāϞā§:
- Created: āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āϤā§āϰāĻŋ āĻšā§ā§āĻā§ āĻāĻŋāύā§āϤ⧠āĻāĻāύāĻ āϏā§āĻāĻžāϰā§āĻ āĻāϰāĻž āĻšā§āύāĻŋāĨ¤
- Running: āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻŦāϰā§āϤāĻŽāĻžāύ⧠āĻāĻžāϞ⧠āĻāĻā§ āĻāĻŦāĻ āĻāĻžāĻ āĻāϰāĻā§āĨ¤
- Paused: āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻĒā§āϰāϏā§āϏāĻā§āϞ⧠āϏāĻžāĻŽā§āĻŋāĻāĻāĻžāĻŦā§ āĻĨāĻžāĻŽāĻŋā§ā§ āϰāĻžāĻāĻž āĻšā§ā§āĻā§ (CPU āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§ āύāĻž)āĨ¤
- Exited (Stopped): āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āĻŦāύā§āϧ āĻšā§ā§ āĻā§āĻā§ (āĻšā§āϤ⧠āĻāϰ āĻāϰ āĻāĻžāĻ āĻļā§āώ āĻ āĻĨāĻŦāĻž āĻŽā§āϝāĻžāύā§ā§āĻžāϞāĻŋ āĻĨāĻžāĻŽāĻžāύ⧠āĻšā§ā§āĻā§)āĨ¤
- Restarting: āĻā§āύ⧠āĻāϰāϰā§āϰ āĻāĻžāϰāĻŖā§ āĻĄāĻāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋāĻā§ āĻĒā§āύāϰāĻžā§ āϰāĻžāύ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻā§āĨ¤
ā§Š. Container vs Image: āĻŽā§āϞ āĻĒāĻžāϰā§āĻĨāĻā§āϝ â
āĻ āύā§āĻā§āĻ āĻāĻ āĻĻā§āĻāĻŋāϰ āĻŽāϧā§āϝ⧠āĻā§āϞāĻŋā§ā§ āĻĢā§āϞā§āύāĨ¤ āĻāĻāĻāĻŋ āϏāĻšāĻ āϤā§āϞāύāĻž āĻĻā§āĻāĻž āϝāĻžāĻ:
| Feature | Image | Container |
|---|---|---|
| Nature | āϰāĻŋāĻĄ-āĻ āύāϞāĻŋ (Static) | āϰāĻŋāĻĄ-āϰāĻžāĻāĻ (Dynamic) |
| Analogy | āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ āĻŦāĻž āĻŦā§āϞā§-āĻĒā§āϰāĻŋāύā§āĻ | āĻāĻāĻŋ āĻ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ |
| Storage | āĻĄāĻŋāϏā§āĻā§ āĻāĻžā§āĻāĻž āύā§ā§ | āϰāĻžāύāĻāĻžāĻāĻŽ āĻŽā§āĻŽā§āϰāĻŋ āĻ āĻĄāĻŋāϏā§āĻ āϞā§āϝāĻŧāĻžāϰ āύā§ā§ |
| Change | āĻāĻŽā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžā§ āύāĻž (āύāϤā§āύ āĻāĻžāϰā§āϏāύ āϞāĻžāĻā§) | āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻĢāĻžāĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžā§ |
ā§Ē. Ephemeral Nature (āϏā§āĻŦāϞā§āĻĒāϏā§āĻĨāĻžā§ā§ āĻĒā§āϰāĻā§āϤāĻŋ) â
Docker āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞ⧠āĻĄāĻŋāĻĢāϞā§āĻāĻāĻžāĻŦā§ Ephemeral āĻšā§āĨ¤ āĻāϰ āĻŽāĻžāύ⧠āĻšāϞā§:
- āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āϝāϤ āϏāĻŽā§ āϰāĻžāύāĻŋāĻ āĻĨāĻžāĻāĻŦā§, āϤāĻžāϰ āĻā§āϤāϰāĻāĻžāϰ āĻĄā§āĻāĻž āϤāϤ āϏāĻŽā§ āĻĨāĻžāĻāĻŦā§āĨ¤
- āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāύā§āĻā§āĻāύāĻžāϰāĻāĻŋ āϰāĻŋāĻŽā§āĻ (
rm) āĻāϰ⧠āĻĻā§āύ, āϤāĻŦā§ āϤāĻžāϰ āĻā§āϤāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻž āϏāĻŦ āĻĢāĻžāĻāϞ āĻŦāĻž āĻĄā§āĻāĻž āĻāĻŋāϰāϤāϰ⧠āĻŽā§āĻā§ āϝāĻžāĻŦā§āĨ¤
āĻ āϰā§āĻĨāĻžā§, āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŽā§āϤā§āϝ⧠āĻŽāĻžāύ⧠āϤāĻžāϰ āĻšāĻžāϰā§āĻĄāĻĄā§āϰāĻžāĻāĻā§āϰāĻ āĻŽā§āϤā§āϝā§āĨ¤
ā§Ģ. Data Persistence Challenges â
āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāĻ Ephemeral āϏā§āĻŦāĻāĻžāĻŦā§āϰ āĻāĻžāϰāĻŖā§ āĻāĻŋāĻā§ āĻā§āϝāĻžāϞā§āĻā§āĻ āϤā§āϰāĻŋ āĻšā§:
- āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻĄā§āĻāĻž āϰāĻžāĻāϞ⧠āϤāĻž āϰāĻŋāĻŽā§āĻ āĻāϰāĻžāϰ āĻĒāϰ āĻĄā§āĻāĻž āĻšāĻžāϰāĻŋā§ā§ āϝāĻžāĻā§āĻžāϰ āĻā§ āĻĨāĻžāĻā§āĨ¤
- āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞāĻā§āϞ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āϏā§āĻ āĻāϰāĻž āĻāώā§āĻāĻāϰāĨ¤
āϏāĻŽāĻžāϧāĻžāύ: āĻāĻ āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝāĻ āĻĄāĻāĻžāϰ Volumes āĻāĻŦāĻ Bind Mounts āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝāĻž āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻŦāĻžāĻāϰ⧠āĻĄā§āĻāĻž āϏā§āĻ āĻāϰ⧠āϰāĻžāĻā§āĨ¤
IMPORTANT
āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ, Docker Best Practice āĻšāϞā§: āĻāύā§āĻā§āĻāύāĻžāϰāĻā§ āĻāĻŽāύāĻāĻžāĻŦā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āϝā§āύ āϏā§āĻāĻŋ āϝā§āĻā§āύ⧠āϏāĻŽā§ āĻŦāύā§āϧ āĻŦāĻž āϰāĻŋāĻŽā§āĻ āĻāϰāϞ⧠āĻāĻĒāύāĻžāϰ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻĄā§āĻāĻžāϰ āĻā§āύ⧠āĻā§āώāϤāĻŋ āύāĻž āĻšā§āĨ¤