Skip to Content
Go Realm v1 is released 🎉
DevOpsDockerLinux & Process Model

🟧 DAY 2: Linux + Container Reality (Minimal but Critical)

đŸŽ¯ āφāϜāϕ⧇āϰ āϞāĻ•ā§āĻˇā§āϝ:

Docker crash āĻšāϞ⧇ panic āύāĻž āĻ•āϰāĻžāĨ¤ Docker āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ Linux process model āĻ“ Container concepts āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰāĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāĻžāĨ¤


📌 Topics:

1. Linux Process Model (Basic)

  • Linux Process Model: āϞāĻŋāύāĻžāĻ•ā§āϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰāĻžāύāĻŋāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻž āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāϞāĻŽāĻžāύ āĻĨāĻžāϕ⧇āĨ¤
  • āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏ⧇āϏ⧇āϰ āĻŽāĻ§ā§āϝ⧇ PID (Process ID) āĻĨāĻžāϕ⧇, āϝāĻž āϤāĻžāϕ⧇ āχāωāύāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇āĨ¤
  • āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϰāϏ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻŋāϛ⧁ āĻ•āύāϏ⧇āĻĒā§āϟ āϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇, āϝ⧇āĻŽāύ:
    • Forking: āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϏ⧇āϏ āύāϤ⧁āύ āϏāĻžāĻŦ-āĻĒā§āϰāϏ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϤāĻ–āύ āϏ⧇āϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĒā§āϰāϏ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤
    • Signal Handling: āĻĒā§āϰāϏ⧇āϏ⧇ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āĻĒāĻžāĻ āĻžāύ⧋ āĻšā§Ÿ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϰāĻ•āĻŽā§‡āϰ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ (āϝ⧇āĻŽāύ, āĻĒā§āϰāϏ⧇āϏ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻž, āĻĒ⧁āύāϰāĻžā§Ÿ āϚāĻžāϞāĻžāύ⧋, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ)āĨ¤

2. Container = Isolated Process

  • Container āφāϏāϞ⧇ āĻāĻ•āϟāĻŋ āφāϞāĻžāĻĻāĻž āϞāĻŋāύāĻžāĻ•ā§āϏ āĻĒā§āϰāϏ⧇āϏ, āϝāĻž Isolation āĻĻāĻŋā§Ÿā§‡ āϚāϞāϛ⧇āĨ¤ āϝāĻ–āύ āϤ⧁āĻŽāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāύ āĻ•āϰ⧋, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻĒā§āϰāϏ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻšā§‹āĻ¸ā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āĻĨāĻžāϕ⧇āĨ¤
  • āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ āϝ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ āϝāĻž āĻ•āĻŋāϛ⧁ āϘāϟāĻŦ⧇, āϏ⧇āϟāĻž āĻšā§‹āĻ¸ā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āϕ⧋āύ⧋ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĢ⧇āϞāĻŦ⧇ āύāĻž, āϝāϤāĻ•ā§āώāĻŖ āύāĻž āϤ⧁āĻŽāĻŋ āϏāϰāĻžāϏāϰāĻŋ āĻšā§‹āĻ¸ā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āύāĻž āĻ•āϰ⧋āĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ rm -rf / āĻ•āϰāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻĢāĻžāχāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŽā§āϛ⧇ āϝāĻžāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻšā§‹āĻ¸ā§āϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•āĻŋāϛ⧁āχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāĻŦ⧇ āύāĻžāĨ¤

3. PID 1 Concept

  • PID 1: āϞāĻŋāύāĻžāĻ•ā§āϏ⧇ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāϏ⧇āϏāϟāĻŋ āĻšāϞ⧋ PID 1, āϝāĻž āĻĒ⧁āϰ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāĻŋāĻ­ āϰ⧁āϟ āĻĒā§āϰāϏ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤
  • āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇, āϝāĻ–āύ āϤ⧁āĻŽāĻŋ āϕ⧋āύ⧋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰ⧋ (āϝ⧇āĻŽāύ docker run), āϤāĻ–āύ āϝ⧇ āĻĒā§āϰāϏ⧇āϏ āĻĒā§āϰāĻĨāĻŽā§‡ āϚāĻžāϞ⧁ āĻšā§Ÿ, āϏ⧇āϟāĻŋāχ PID 1āĨ¤ āĻāϟāĻž āϝāĻĻāĻŋ āĻŦāĻ¨ā§āϧ āĻšā§Ÿā§‡ āϝāĻžā§Ÿ, āĻĒ⧁āϰ⧋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻŦāĻ¨ā§āϧ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤
  • āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ PID 1 āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āϗ⧁āϰ⧁āĻ¤ā§āĻŦ āĻŦāĻšāύ āĻ•āϰ⧇, āĻ•āĻžāϰāĻŖ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻœā§€āĻŦāύ āĻāĻŦāĻ‚ āĻŽā§ƒāĻ¤ā§āϝ⧁āϰ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻāχ āĻĒā§āϰāϏ⧇āϏ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤

4. SIGTERM vs SIGKILL

  • SIGTERM: āĻāχ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞāϟāĻŋ āĻĒā§āϰāϏ⧇āϏāϕ⧇ āĻŦāĻ¨ā§āϧ āĻ•āϰāϤ⧇ āĻŦāϞ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āĻĒā§āϰāϏ⧇āϏāϕ⧇ āϏ⧁āĻ¨ā§āĻĻāϰāĻ­āĻžāĻŦ⧇ āĻŦāĻ¨ā§āϧ āĻšāϤ⧇ āϏāĻŽā§Ÿ āĻĻā§‡ā§ŸāĨ¤

    • āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ—ā§āϰ⧇āϏāĻĢ⧁āϞ āĻļāĻžāϟāĻĄāĻžāωāύ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞāĨ¤
    • āϝāĻĻāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āĻŦāĻ¨ā§āϧ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ, āϤāĻŦ⧇ āĻāϟāĻŋ SIGTERM āĻĒāĻžāĻ āĻžā§ŸāĨ¤
    • āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ docker stop āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāϞ⧇ SIGTERM āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞāϟāĻŋ āĻĒāĻžāĻ āĻžāύ⧋ āĻšā§ŸāĨ¤
  • SIGKILL: āϝāĻĻāĻŋ SIGTERM āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āϕ⧋āύ⧋ āĻ•āĻžāϰāϪ⧇ āĻ•āĻžāϜ āύāĻž āĻ•āϰ⧇, āϤāĻ–āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ SIGKILL āĻĒāĻžāĻ āĻžā§Ÿ, āϝāĻž āĻĒā§āϰāϏ⧇āϏāϕ⧇ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻāĻŦāĻ‚ āφāύāϞāĻŋāĻ¸ā§āĻŸā§‡āĻĄāĻ­āĻžāĻŦ⧇ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤

    • āĻāϟāĻŋ āĻ—ā§āϰ⧇āϏāĻĢ⧁āϞ āĻļāĻžāϟāĻĄāĻžāωāύ āύ⧟, āĻāϟāĻŋ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āϜāĻŦāϰāĻĻāĻ¸ā§āϤ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āωāĻĒāĻžā§ŸāĨ¤

5. Memory Limit Concept

  • Memory Limit: Docker āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ memory limit āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāĻŖ RAM āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤
  • āϝāĻĻāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ out-of-memory (OOM) āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻŦāĻ¨ā§āϧ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤
    • āĻāϟāĻŋ āĻāĻ• āϧāϰāύ⧇āϰ safety net āϝ⧇āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ–āϰāϚ āϠ⧇āĻ•āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

❓ Questions:

  • Docker stop āĻĻāĻŋāϞ⧇ āĻ­āĻŋāϤāϰ⧇ āϕ⧀ āϘāĻŸā§‡?

    • āϝāĻ–āύ docker stop āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§Ÿ, āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ SIGTERM āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āĻĒāĻžāĻ āĻžāύ⧋ āĻšā§ŸāĨ¤ āĻāϟāĻŋāϰ āĻĢāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽā§‚āϞ āĻĒā§āϰāϏ⧇āϏ (PID 1) āĻ—ā§āϰ⧇āϏāĻĢ⧁āϞāĻ­āĻžāĻŦ⧇ āĻŦāĻ¨ā§āϧ āĻšāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϟāĻŋ āϧ⧀āϰ⧇ āϧ⧀āϰ⧇ āĻļāĻžāϟāĻĄāĻžāωāύ āĻšā§ŸāĨ¤
  • PID 1 special āϕ⧇āύ?

    • āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ PID 1 āĻšāϞ⧋ āϏ⧇āχ āĻĒā§āϰāϏ⧇āϏ āϝāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻœā§€āĻŦāύ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻŽāϰ⧇ āϝāĻžā§Ÿ, āĻ•āĻžāϰāĻŖ āĻāϟāĻž āĻĒā§āϰāĻĨāĻŽā§‡ āϚāϞ⧇ āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§āϰāϏ⧇āϏāϗ⧁āϞ⧋āϰ āϜāĻ¨ā§āϝ parent āĻĒā§āϰāϏ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤
  • Memory limit āĻĻāĻŋāϞ⧇ app āϕ⧇āύ āĻŽāĻžāϰāĻž āϝāĻžā§Ÿ?

    • āϝāĻ–āύ memory limit āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻž āĻšā§Ÿ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āϤāĻžāϰ āϏ⧀āĻŽāĻž āĻ›āĻžā§œāĻŋā§Ÿā§‡ āϝāĻžā§Ÿ, āϤāĻ–āύ āĻāϟāĻŋ out-of-memory (OOM) āĻšā§Ÿā§‡ āϝāĻžā§Ÿ āĻāĻŦāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤

đŸ› ī¸ Practice:

1. Run Alpine with Shell (Interactive Mode):

  • āĻāĻ–āύ āϤ⧁āĻŽāĻŋ alpine āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāύ āĻ•āϰ⧇ āϤāĻžāϰ āĻļ⧇āϞ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤ Alpine āĻāĻ•āϟāĻŋ āϞāĻžāχāϟāĻ“ā§Ÿā§‡āϟ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ, āϝāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ Docker āχāĻŽā§‡āϜ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤
docker run -it alpine sh