Sử dụng Alpine Linux làm Docker host

Alpine linux được tôi chọn để chạy Docker vì nó nhẹ và tốn ít tài nguyên hệ thống. Thử đi bạn sẽ cảm nhận được điều tôi nói.

Alpine trên VPS

Tùy thuộc vào nhà cung cấp VPS mà bạn sẽ được hướng dẫn cài đặt Alpine Linux theo cách khác nhau.

Bài viết dưới đây được minh họa trên Alpine 3.12.

Kích hoạt repo và thêm các gói cài đặt

Cập nhật file /etc/apk/repositories bằng lệnh:

setup-apkrepos

Hoặc chỉnh sửa thủ công file /etc/apk/repositories bằng lệnh vi:

vi /etc/apk/repositories

Sau khi chỉnh sửa sẽ trông như sau:

chỉnh sửa file /etc/apk/repositories

chỉnh sửa file /etc/apk/repositories

Nếu muốn thêm repo community (nơi chứa gói docker) bằng dòng lệnh, ví dụ:

echo "http://dl-cdn.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories
apk update

Cài đặt Docker trên Alpine Linux

Sau khi kích hoạt repo, bạn có thể cài đặt và khởi chạy Docker bằng những câu lệnh sau:

apk update
apk add docker
rc-update add docker
rc-service docker start

Kiểm tra trạng thái và phiên bản Docker đã cài:

rc-service docker status
docker version

Chạy thử một nginx webserver để kiểm tra:

docker create \
  --name nginx \
  -p 80:80 \
  nginx
docker start nginx

Nếu container chạy thành công, bạn có thể truy cập http://<ip-vps> để xem trang mặc định của nginx.

Docker Compose trên Alpine Linux

Alpine không có sẵn gói docker-compose trong repo mặc định, nên cách đơn giản và nhanh nhất là tải binary có sẵn từ GitHub release của Docker Compose thay vì build từ mã nguồn.

Cài curl nếu máy chưa có:

apk add curl

Tải binary và cấp quyền thực thi:

curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Lưu ý: 1.27.3 là phiên bản tại thời điểm viết bài. Bạn nên kiểm tra và thay bằng phiên bản mới nhất khi thực hiện.

Kiểm tra lại:

docker-compose --version

Nếu vì lý do nào đó binary không chạy được trên hệ thống của bạn (thường do Alpine dùng musl libc thay vì glibc), bạn có thể cài qua pip như một phương án dự phòng — lúc này mới cần các gói build:

apk add python3 python3-dev libffi-dev openssl-dev gcc libc-dev make
apk add --update py-pip
pip install docker-compose

Tổng kết

Vậy là chỉ với vài dòng lệnh, bạn đã có một Docker host chạy trên Alpine Linux — nhẹ, gọn, tiết kiệm tài nguyên VPS. Đây là lựa chọn khá lý tưởng nếu bạn chạy các dịch vụ nhỏ hoặc VPS cấu hình thấp.