Portainer: quản lý container qua trình duyệt
Cách cài đặt bảng điều khiển web quản lý container, tại sao nó tiện lợi, và tại sao bạn không nên để nó lộ ra internet mà không có bảo vệ.
Cập nhật 23 tháng 8, 2026
Portainer là giao diện web cho Docker: danh sách container, log, console vào container, volume, network và các stack Compose. Nó rất tiện khi bạn không muốn SSH vào mỗi lần chỉ để “xem cái gì vừa sập”.
Cài đặt
docker volume create portainer_data
docker run -d \
--name portainer \
--restart unless-stopped \
-p 127.0.0.1:9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.21.4
Cổng được gắn với giao diện cục bộ. Bạn có thể mở bảng điều khiển qua SSH tunnel:
ssh -L 9443:127.0.0.1:9443 root@<machine-address>
Sau đó mở https://localhost:9443 trong trình duyệt. Chứng chỉ là tự ký, nên trình duyệt sẽ cảnh báo — điều đó là bình thường khi truy cập qua tunnel.
Người đầu tiên mở bảng điều khiển sẽ tạo tài khoản quản trị viên đầu tiên. Nếu bạn đã mở cổng ra internet rồi đi uống trà, quản trị viên sẽ không phải là bạn. Portainer đóng đăng ký vài phút sau khi khởi động, nhưng bạn không nên dựa vào đó — hãy tạo tài khoản ngay lập tức.
Vì sao điều này nguy hiểm và cần làm gì
Bảng điều khiển mount /var/run/docker.sock. Quyền truy cập vào socket này tương đương quyền root trên máy: thông qua nó, bạn có thể khởi chạy một container với root của máy chủ được mount vào. Vì vậy, các quy tắc là:
- Không mở cổng ra internet. Hoặc dùng SSH tunnel, hoặc dùng web server có chứng chỉ và xác thực hai yếu tố.
- Đặt mật khẩu quản trị viên dài và duy nhất, không trùng với mật khẩu root của máy.
- Cấp cho mỗi người một tài khoản riêng với quyền hạn giới hạn, không dùng chung một login.
- Nếu ít khi cần bảng điều khiển, hãy để container ở trạng thái dừng và khởi động khi cần:
docker start portainer.
Điều gì tiện lợi
- Log có tìm kiếm và tô sáng — nhanh hơn
docker logstrong console văn bản 80×24. - Console vào container ngay trong trình duyệt.
- Stack — dán nội dung
compose.yaml, bấm deploy. Tốt cho các dịch vụ dùng một lần, nhưng với dịch vụ lâu dài thì nên giữ file trên đĩa dưới sự quản lý phiên bản: một stack tạo trong bảng điều khiển rất dễ mất khi bạn cài lại. - Volume và image — bạn thấy được cái gì chiếm bao nhiêu dung lượng; điều này hữu ích khi xử lý sự cố hết dung lượng.
Điều bạn không nên làm trong đó
- Giữ bản sao duy nhất của các định nghĩa dịch vụ trong đó. Các file
compose.yamltrong một thư mục trên đĩa sẽ tồn tại lâu hơn bảng điều khiển. - Cập nhật container bằng nút “recreate” mà không hiểu điều gì sẽ xảy ra với các volume. Xem cập nhật container.
- Coi nó như một thứ thay thế cho giám sát. Portainer hiển thị trạng thái hiện tại, không phải lịch sử, và không gửi cảnh báo — muốn vậy bạn cần Uptime Kuma.
Tài nguyên
Container dùng khoảng 100 MB bộ nhớ và chạy trên mọi tier. Dữ liệu được lưu trong volume portainer_data: tài khoản, cài đặt, stack. Hãy đưa nó vào backup của bạn hoặc chuẩn bị tinh thần cấu hình lại bảng điều khiển.
Lỗi thường gặp
- Quên rằng bảng điều khiển chỉ quản lý máy này. Nó cũng có thể quản lý máy thứ hai, nhưng cần một agent trên máy đó và một cổng mở giữa hai bên.
- Dùng tag
latestcho chính bảng điều khiển. Bản cập nhật lớn sẽ thay đổi định dạng dữ liệu. Hãy ghim phiên bản. - Xóa một volume “không dùng” qua cleanup. Portainer có cảnh báo, nhưng người ta bấm nút mà không đọc. Các volume chứa database trông như không dùng khi container đang dừng — xem volume.