0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Cài Đặt Raspberry Pi 4B (2GB RAM) Headless cho Docker và API

Đăng vào 6 tháng trước

• 3 phút đọc

Chủ đề:

KungFuTech

🧠 Cài Đặt Raspberry Pi 4B (2GB RAM) Headless cho Docker và API

Raspberry Pi 4B với 2GB RAM đủ mạnh để xử lý các tác vụ container nhẹ và lưu trữ web API — nếu bạn tối ưu hóa và giữ cho nó gọn nhẹ. Với một thiết lập headless, chỉ sử dụng terminal, chúng ta có thể biến bo mạch nhỏ này thành một máy chủ micro cloud cho các API, tự động hóa và nhiều hơn nữa.


🧰 Những Gì Bạn Cần

  • Raspberry Pi 4B (2GB RAM)
  • Raspberry Pi OS Lite (64-bit được khuyến nghị)
  • Thẻ microSD (16GB+ được khuyến nghị)
  • Truy cập SSH (headless)
  • Kết nối Ethernet hoặc Wi-Fi
  • Truy cập Internet

🛰️ Bước 1: Thiết Lập Raspberry Pi Headless

1. Cài Đặt Raspberry Pi OS Lite (64-bit)

Tải về từ: Raspberry Pi Software

Sử dụng:

  • Raspberry Pi Imager
  • balenaEtcher
  • Hoặc lệnh dd (dành cho người dùng nâng cao)

2. Kích Hoạt SSH và Wi-Fi

Trên phân vùng /boot của thẻ SD:

  • Thêm một file trống có tên ssh
  • Thêm wpa_supplicant.conf:
Copy
country=VN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
  ssid="YOUR_SSID"
  psk="YOUR_PASSWORD"
}

Chèn thẻ SD và khởi động.


3. Kết Nối Qua SSH

Copy
ssh pi@raspberrypi.local
# Hoặc sử dụng IP của Pi:
ssh pi@<ip-address>

🔐 Bước 2: Cấu Hình Ban Đầu

Copy
passwd  # Đổi mật khẩu mặc định
sudo apt update && sudo apt upgrade -y
sudo raspi-config

Trong raspi-config, thiết lập:

  • Tên máy chủ
  • Ngôn ngữ, múi giờ
  • Kích hoạt SSH, I2C, SPI (nếu cần)

🛠️ Bước 3: Cài Đặt Công Cụ Cần Thiết & Python

Cài đặt công cụ phát triển:

Copy
sudo apt install -y \
  git curl wget build-essential \
  python3 python3-pip python3-venv \
  vim nano tmux htop neofetch

Thiết lập môi trường Python:

Copy
python3 -m pip install --upgrade pip
python3 -m pip install virtualenv ipython

🐳 Bước 4: Cài Đặt Docker (Tùy Chọn Rootless)

Tùy Chọn 1: Cài Đặt Docker Cổ Điển

Copy
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Khởi động lại hoặc đăng xuất/đăng nhập để áp dụng thay đổi nhóm.

Kiểm tra Docker:

Copy
docker run hello-world

Tùy Chọn 2: Kubernetes Nhẹ (k3s)

Cài đặt k3s (chế độ máy chủ):

Copy
curl -sfL https://get.k3s.io | sh -

Kiểm tra trạng thái:

Copy
sudo k3s kubectl get nodes

Để sử dụng kubectl mà không cần sudo:

Copy
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config

🔌 Bước 5: Lưu Trữ Web API với FastAPI hoặc Flask

Tạo môi trường ảo

Copy
python3 -m venv webenv
source webenv/bin/activate
pip install fastapi uvicorn flask

🔹 Tùy Chọn A: Ví Dụ FastAPI

Tạo main.py:

Copy
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Xin chào từ FastAPI trên Raspberry Pi 4B!"}

Chạy nó:

Copy
uvicorn main:app --host 0.0.0.0 --port 8000

🔹 Tùy Chọn B: Ví Dụ Flask

Tạo app.py:

Copy
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Xin chào từ Flask trên Raspberry Pi 4B!"

Chạy:

Copy
python app.py

🛡️ Tùy Chọn: Chạy Như Một Dịch Vụ Systemd

Tạo /etc/systemd/system/fastapi.service:

Copy
[Unit]
Description=FastAPI App
After=network.target

[Service]
User=pi
WorkingDirectory=/home/pi/project
ExecStart=/home/pi/webenv/bin/uvicorn main:app --host 0.0.0.0 --port=8000
Restart=always

[Install]
WantedBy=multi-user.target

Kích hoạt & khởi động:

Copy
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable fastapi
sudo systemctl start fastapi

📦 Bước 6: Tạo Sao Lưu (Snapshot Di Động)

Sao lưu cấu hình và gói:

Copy
mkdir -p ~/pi-backup/etc-backup
cp ~/.bashrc ~/pi-backup/
cp -r ~/.config ~/pi-backup/
sudo cp -r /etc ~/pi-backup/etc-backup/
apt-mark showmanual > ~/pi-backup/manual-packages.txt

Nén để dễ dàng di chuyển:

Copy
tar -czvf pi-backup.tar.gz pi-backup

♻️ Bước 7: Khôi Phục Trên Raspberry Pi Mới

  1. Sao chép pi-backup.tar.gz vào Raspberry Pi mới và giải nén:
Copy
tar -xzvf pi-backup.tar.gz
  1. Chạy script khôi phục:
Copy
#!/bin/bash
xargs sudo apt install -y < ~/pi-backup/manual-packages.txt
cp ~/pi-backup/.bashrc ~/
cp -r ~/pi-backup/.config ~/

✅ Ghi Chú Cuối Cùng & Mẹo

  • Theo dõi các container với docker ps, docker stats
  • Sử dụng tmux hoặc screen cho các phiên SSH bền vững
  • Mở cổng với ufw hoặc sử dụng reverse proxy (ví dụ: Caddy hoặc Nginx)
  • Thêm tên miền + SSL với Caddy để có HTTPS không cần cấu hình

🚀 Điều Gì Tiếp Theo?

Giờ đây, Raspberry Pi 4B của bạn đã trở thành một máy chủ API sẵn sàng cho container!

Bạn có thể:

  • 🎯 Triển khai microservices với Docker hoặc k3s
  • 🌐 Lưu trữ bảng điều khiển địa phương, REST APIs, hoặc thậm chí bot Telegram
  • ☁️ Đồng bộ hóa cấu hình/script với GitHub cho các dự án trong tương lai
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào