Trong những bài viết đầu tiên về Docker và Docker Compose trên blog, mình đã từng giới thiệu về Portainer – ứng dụng quản lý Docker trực quan, hiệu quả, phù hợp cho các bạn mới.
Tuy nhiên, trên thực tế, mình chẳng bao giờ dùng Portainer để quản lý Docker. Có 3 lý do chính:
- Mình thích dùng command line để thao tác với Docker, cảm thấy nhanh hơn so với khi dùng GUI.
- Đôi khi muốn dùng giao diện của Portainer để tiện việc theo dõi thông số, cập nhật container. Nhưng Portainer lại không hỗ trợ quản lý các ứng dụng được cài đặt thông qua Docker Compose bằng dòng lệnh. Nó chỉ hỗ trợ các ứng dụng cài đặt thông qua tính năng Stack Management có sẵn.
- Portainer có quá nhiều tính năng không cần thiết với nhu cầu cá nhân, khiến giao diện trở nên rối rắm, khó điều hướng.
Gần đây mình đã phát hiện ra Dockge – ứng dụng Docker Manager tương tự như Portainer nhưng đã được tối ưu và đơn giản hóa, phù hợp cho các tín đồ self-hosting, và cảm thấy nó rất phù hợp với nhu cầu sử dụng. Dockge là sự thay thế hoàn hảo cho Portainer để quản lý Docker.
Mục Lục
I. Giới thiệu Dockge
Dockge là một ứng dụng quản lý Docker thông qua giao diện web trực quan, dễ sử dụng, dễ cài đặt. Nó được phát triển bởi tác giả louislam, người đã tạo ra Uptime Kuma – ứng dụng miễn phí giúp giám sát trạng thái hoạt động website rất nổi tiếng.
Tính năng của Dockge
- Hỗ trợ quản lý
compose.yaml
- Tạo / Sửa / Kích hoạt / Tạm dừng / Khởi động lại / Xóa
- Cập nhật Docker iamge
- Trình soạn thảo cho file
compose.yaml
- Tích hợp Web Terminal để gõ lệnh command line
- Hỗ trợ Dockge Agents – Cài đặt Dockge trên nhiều máy chủ và có thể quản lý tất cả trên 1 giao diện duy nhất.
- Chuyển đổi câu lệnh
docker run ...
thànhcompose.yaml
- File
compose.yml
tạo bởi Dockge được lưu ở thư mục chỉ định. Có thể dùng lệnhdocker compose
để quản lý bằng command line - Giao diện trực quan, dễ sử dụng, phản hồi trực tiếp
II. Yêu cầu chuẩn bị
Để thực hiện theo thao tác trong bài, bạn cần chuẩn bị hệ thống như sau:
- VPS cài đặt hệ điều hành Linux: CentOS / Debian 11 trở lên / Ubuntu
- VPS đã được cài đặt Docker và Docker Compose. Xem hướng dẫn ở đây.
III. Cài đặt Dockge
Cài đặt Dockge bằng lệnh sau
# Create directories that store your stacks and stores Dockge's stack
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
# Download the compose.yaml
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
Code language: Nginx (nginx)
Với thiết lập này, tất cả các ứng dụng Docker Compose bạn tạo với Dockge sẽ được lưu trong thư mục /opt/stacks
Nếu trên hệ thống đã có sẵn các ứng dụng Docker Compose đang hoạt động, bạn nên cập nhật lại file compose.yml
của Dockge, sửa lại thông số của DOCKGE_STACK_DIR. Ví dụ: mình thường lưu các thư mục Docker Compose ở /home
nên cần sửa lại dòng 15 và 18 như bên dưới.
version: "3.8"
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
# Stacks Directory
# READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
# 1. FULL path only. No relative path (MUST)
# 2. Left Stacks Path === Right Stacks Path (MUST)
- /home:/home
environment:
# Tell Dockge where to find the stacks
- DOCKGE_STACKS_DIR=/home
Code language: YAML (yaml)
Kích hoạt Dockge
docker compose up -d
Code language: Nginx (nginx)
Truy cập Dockge qua địa chỉ http://IP:5001
IV. Thiết lập và quản lý ứng dụng trên Dockge
Ở lần truy cập đầu tiên, bạn cần tạo tài khoản admin
Bấm vào nút + Compose để tạo ứng dụng mới. Sau đó nhập thông tin:
- Stack Name: tên của ứng dụng, nó cũng sẽ là tên của thư mục chứa file
compose.yml
- Nhập vào nội dung file Docker Compose vào ô số 2
- Bấm Deploy để kích hoạt
Ví dụ ở đây mình tạo ứng dụng Memos để viết ghi chú.
Sau khi Dockge hoàn thành việc kích hoạt ứng dụng mới, bạn có thể bấm vào số port để truy cập vào ứng dụng.
Thanh công cụ ở trên có các nút để bạn quản lý ứng dụng vừa tạo:
- Edit: chỉnh sửa file
compose.yml
- Restart: khởi động lại
- Update: cập nhật lên phiên bản mới nhất
- Stop: tạm ngừng (tương ứng với lệnh
docker compose stop
) - Stop & Reactive: tắt (tương ứng với lệnh
docker compose down
) - Delete: xóa ứng dụng
V. Sử dụng Console
Dockge được tích hợp sẵn Web Terminal để quản lý Docker bằng dòng lệnh. Bấm vào nút Console ở góc trên bên phải để truy cập vào Console. Bạn có thể gõ lệnh vào khu vực Console hiện ra bên dưới.
Bạn cũng có thể truy cập vào Terminal của từng container bằng cách bấm vào nút >_Bash
Sau đó có thể gõ lệnh bình thường như khi thao tác trực tiếp bằng SSH.
VI. Kết nối Agents
Chúng ta có thể cài đặt Dockge trên nhiều máy chủ. Sau đó sử dụng tính năng Dockge Agents để kết nối và quản lý Docker của nhiều máy chủ trên 1 giao diện duy nhất.
Bấm vào nút Add Agent để kết nối tới máy chủ khác đã được cài Dockge.
Nhập vào URL máy chủ, username và password tương ứng. Bấm Connect để kết nối
Sau khi kết nối thành công, ở menu bên trái sẽ hiện ra thêm các ứng dụng đang hoạt động trên máy chủ vừa kết nối vào giao diện Dockge chính.
Khi tạo ứng dụng mới, bạn có thể tùy chọn lưu ứng dụng trên máy chủ đang chạy Dockge hay máy chủ được kết nối thông qua Agent.
Dockge nhanh chóng trở thành công cụ quản lý Docker yêu thích của mình. Nó vừa hỗ trợ thao tác trực quan qua GUI, vừa hỗ trợ thao tác bằng dòng lệnh, tiện cả đôi đường. Đặc biệt, tính năng Dockge Agents thật sự quá hữu ích để quản lý nhiều server cùng lúc, giúp tiết kiệm thời gian hơn hẳn so với việc phải truy cập vào từng server như trước đây.
Chúc bạn cài đặt thành công!
[convertkit form=7087807]
Mình có thử nhưng sao nó cũng chỉ quản lý được các stack của nó tạo chứ k quản lý chỉnh sửa docker compose file từ chỗ khác nhỉ. Cũng không hỗ trợ backup & restore luôn
Trong bài có ghi là Dockge chỉ hỗ trợ quản lý stack trong thư mục Stack của nó mà bạn. Nằm chỗ khác nó không có quyền truy cập thì sao quản lý được.
Dockge không có tính năng backup & restore nha.
Mình đang thấy vấn đề nữa là Dockge không có phần quản lý docker image, mỗi cái cũng mấy trăm mb á. Để lâu nó chiếm bộ nhớ của máy. Mong bạn chia sẻ cách quản lý. Mình cũng rất thích phương án quản lý tất cả docker trên nhiều server cùng 1 giao diện như này. Portainer thì nó nặng quá, mỗi lần deploy fail xem log cũng k tối ưu
Dockge có tích hợp sẵn Console. Lâu lâu vô gõ lệnh
docker system prune -a
cho nó xóa rác là được nha.Edit: À, mình mới phát hiện ra nó không cho phép chạy lệnh prune để xóa rác trên Dockge. Cái này chắc phải đợi các bản cập nhật sau, hy vọng nó bổ sung thêm tính năng.