איך להתקין Docker על Ubuntu
בעמוד זה
Docker מריץ אפליקציות בתוך קונטיינרים: כל קונטיינר מגיע עם כל מה שהוא צריך, ולכן הוא רץ אותו דבר במחשב הנייד שלכם ועל שרת. אתרים, מסדי נתונים, בוטים ושרתי משחק אפשר להפעיל בפקודה אחת או בקובץ Compose אחד.
המדריך הזה מתקין Docker Engine ו-Docker Compose על Ubuntu 24.04 או 22.04 מהמאגר הרשמי של Docker, ואז עובר על ההגדרות שחשובות בשרת אמיתי: הרשאות, לוגים וחומת האש.
לפני שמתחילים
- גרסת Ubuntu נתמכת: Docker תומך בגרסאות 64 ביט של Ubuntu 26.04, 24.04 ו-22.04 LTS. בדקו את הגרסה שלכם עם
cat /etc/os-release. - שרת KVM, לא קונטיינר: Docker צריך יכולות ליבה משלו. הוא רץ על כל VPS מסוג KVM, אבל לעיתים קרובות לא על חבילות מבוססות קונטיינרים (OpenVZ או LXC).
- root או משתמש עם sudo. הפקודות שלהלן משתמשות ב-
sudo; אם התחברתם כ-root, אפשר לוותר עליו.
בשרתים, הימנעו מהחבילה docker.io מהמאגר של Ubuntu עצמה ומגרסת ה-Snap: המאגר של Docker מקבל גרסאות חדשות ראשון, ובו משתמש התיעוד הרשמי של Docker.
Docker צריך מכונה וירטואלית אמיתית: חבילות HytHost KVM VPS עם Ubuntu והרשאות root מלאות מתחילות מ-€2.92 לחודש.
לחבילות VPSשלב 1: הסרת חבילות מתנגשות
אם התקנתם בעבר Docker ממקור אחר, הסירו קודם את החבילות האלה. בשרת חדש apt פשוט ידווח שאף אחת מהן לא מותקנת:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
הפעולה הזו לא מוחקת את האימג'ים והווליומים שב-/var/lib/docker/.
שלב 2: הוספת המאגר של Docker
הפקודות האלה, מתוך התיעוד של Docker, מוסיפות את מפתח החתימה של Docker ואת מאגר ה-apt שלו עבור גרסת ה-Ubuntu שלכם:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
שלב 3: התקנת Docker ו-Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
זה מתקין את Docker Engine, את כלי שורת הפקודה, את כלי הבנייה Buildx ואת תוסף Compose. בדקו שהכול עובד:
sudo docker run hello-world docker compose version
הפקודה הראשונה מורידה אימג' בדיקה קטנטן ומדפיסה הודעת פתיחה. ב-Ubuntu, Docker עולה אוטומטית עם אתחול המערכת, כך שאין מה להפעיל.
Compose הוא הפקודה docker compose, עם רווח. הפקודה הישנה docker-compose עם מקף היא הגרסה הראשונה שכבר הוצאה משימוש; מדריכים שעדיין משתמשים בה עובדים גם עם הפקודה החדשה.
שלב 4: הרשאות וסבב לוגים
הרצת docker בלי sudo. הוסיפו את המשתמש שלכם לקבוצה docker, ואז התנתקו והתחברו מחדש:
sudo usermod -aG docker $USER
שימו לב ש-Docker עצמו מזהיר שהקבוצה הזו מעניקה הרשאות ברמת root: כל מי שנמצא בה יכול לשלוט בשרת כולו. הוסיפו רק משתמשים שהייתם נותנים להם root.
הגבלת גודל הלוגים. כברירת מחדל, הלוגים של הקונטיינרים גדלים ללא הגבלה ועלולים למלא את הדיסק. צרו את /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
לאחר מכן הריצו sudo systemctl restart docker. ההגבלה חלה על קונטיינרים שנוצרו אחרי השינוי, לכן צרו מחדש את הקיימים.
קובץ Compose ראשון
Compose מתאר את הקונטיינרים שלכם בקובץ אחד. צרו תיקייה עם compose.yaml:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
הפעילו עם docker compose up -d, בדקו את המצב עם docker compose ps וקראו את הלוגים עם docker compose logs. restart: unless-stopped מחזיר את הקונטיינר לפעולה אחרי קריסה או אתחול. הפורט קשור ל-127.0.0.1 בכוונה, כפי שמסביר הסעיף הבא.
Docker ו-ufw: מלכודת חומת האש
כמעט כולם נופלים בזה. כשמפרסמים פורט, למשל -p 8080:80, Docker מוסיף כללי חומת אש משלו שמופעלים לפני הכללים של ufw. הפורט פתוח לאינטרנט גם אם ufw מציג אותו כסגור.
- קשרו פורטים ל-localhost כשרק השרת עצמו צריך אותם, למשל מסד נתונים או אפליקציה מאחורי reverse proxy:
127.0.0.1:8080:80. - אל תפרסמו בכלל פורטים של מסדי נתונים; במקום זאת, תנו לקונטיינרים לתקשר ביניהם דרך רשת Docker.
- לסינון לפי כתובת מקור, הוסיפו כללים לשרשרת ה-iptables
DOCKER-USER, ש-Docker בודק לפני הכללים שלו.
אותו הדבר חל על שרתי משחק שרצים ב-Docker; ראו איך להגדיר VPS לשרתי משחק.
Docker על VPS של HytHost
חבילות ה-VPS של HytHost רצות על KVM, כך שלכל VPS יש ליבה משלו ו-Docker רץ בלי הגבלות. בחרו Ubuntu 24.04 או 22.04 בהזמנה, התחברו דרך SSH ופעלו לפי השלבים שלמעלה. תקבלו גישת root מלאה, אחסון SSD והגנת DDoS, ותוכלו לשדרג לחבילה גדולה יותר בהמשך ככל שהקונטיינרים שלכם גדלים.
שאלות נפוצות
Docker תומך בגרסאות 64 ביט של Ubuntu 26.04, 24.04 ו-22.04 LTS. מערכות אחרות המבוססות על Ubuntu, כמו Linux Mint, אינן נתמכות רשמית.
לא בשרת ייצור. Docker מציין שסקריפט הנוחות מיועד לסביבות פיתוח ואינו מומלץ לייצור; הוא גם עלול לקפוץ לגרסה ראשית חדשה. השתמשו במקום זאת בשיטת המאגר.
docker-compose עם מקף היא הגרסה הישנה שהוצאה משימוש. כיום Compose הוא תוסף של Docker שמשתמשים בו כ-docker compose, ומותקן עם החבילה docker-compose-plugin.
פורטים ש-Docker מפרסם עוקפים את ufw. קשרו את הפורט ל-127.0.0.1 אם הוא צריך להישאר מקומי, או סננו אותו בשרשרת DOCKER-USER.
על VPS מסוג KVM, כן. חבילות VPS מבוססות קונטיינרים, כמו OpenVZ, לעיתים קרובות לא יכולות להריץ Docker או דורשות הגדרות מיוחדות מהספק.
הריצו את הקונטיינרים שלכם על VPS
חבילות HytHost KVM VPS מריצות Docker בלי הגבלות, עם גישת root מלאה ו-Ubuntu 24.04, החל מ-€2.92 לחודש.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursהמדריך הזה עזר לך?