Hướng Dẫn Cài Đặt Portainer Để Quản Lý Docker Host
Portainer là một công cụ quản lý Docker Container miễn phí, với kích thước gọn nhẹ và giao diện trực quan dễ sử dụng. Công cụ này cho phép người dùng dễ dàng quản lý Docker host một cách hiệu quả và dễ dàng.
1. Hướng Dẫn Cài Đặt Portainer
Để bắt đầu, bạn cần tạo một Docker Volume để lưu trữ thông tin của Portainer:
bash
docker volume create portainer_data
Tiếp theo, chạy Container từ image Portainer:
bash
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Sử dụng lệnh docker ps
để kiểm tra các container đang chạy. Bạn sẽ thấy container Portainer đã khởi động thành công.
2. Truy Cập Portainer
Bạn có thể truy cập vào trang quản trị Portainer qua địa chỉ sau:
http://[IP_Address]:9000
Trong lần truy cập đầu tiên, Portainer sẽ yêu cầu bạn thiết lập mật khẩu cho tài khoản admin. Sau khi đã tạo thành công tài khoản, bạn sẽ thấy giao diện quản trị của Portainer.
3. Hướng Dẫn Thêm Docker Host
Cách 1: Sử Dụng Portainer Agent
- Chạy Container từ image Portainer Agent:
bash
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:latest
2. **Truy cập vào Portainer và thêm môi trường:**
- Chọn mục **Environment** -> **Add Environment**.
- Ở tab Agent, điền tên, IP và Port của Portainer Agent, sau đó chọn **Connect**.
### Cách 2: Expose Docker API
1. **Chỉnh sửa cấu hình Docker trên remote host:**
```bash
nano /lib/systemd/system/docker.service
Thêm vào ExecStart
trường -H=tcp://0.0.0.0:2375
để xuất hiện Docker API ra ngoài.
-
Khởi động lại docker daemon:
bashsystemctl daemon-reload sudo service docker restart
-
Quay lại Portainer và thêm môi trường:
- Chọn mục Environment -> Add Environment.
- Ở tab API, nhập thông tin IP và Port, sau đó chọn Connect.
Lưu ý: Trong quá trình triển khai, hãy đảm bảo quy hoạch port và mở firewall từ server cài đặt Portainer đến các remote host.
4. Thông Tin Remote Host Đã Kết Nối
Bạn có thể xem thông tin của từng host đã kết nối bằng cách vào menu Home ở bên trái. Trang sẽ hiển thị danh sách các host đã kết nối. Nhấn chọn host bạn muốn quản lý để truy cập trang thông tin của host đó.
Giờ đây, bạn có thể dễ dàng quản lý các container của mình mà không cần phải sử dụng command line.
5. Truy Cập Portainer Qua Domain
Để truy cập Portainer qua domain, bạn cần thực hiện các bước sau:
Bước 1: Cấu Hình NGINX
Tạo file portainer.conf
trong nginx:
server {
listen 80;
listen 443 ssl; // default_server;
server_name portainer.local.vn;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
client_max_body_size 10G;
ssl_certificate /etc/ssl/local.vn/local.cer;
ssl_certificate_key /etc/ssl/local.vn/local.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
access_log /opt/logs/nginx/monitorq.log;
error_log /opt/logs/nginx/monitor_error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://[ip_portainer]:9000;
proxy_read_timeout 1800;
proxy_connect_timeout 180;
proxy_send_timeout 180;
send_timeout 180;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Bước 2: Reload Cấu Hình NGINX
Cuối cùng, bạn cần reload lại cấu hình NGINX để áp dụng thay đổi.
Lưu ý: Nếu gặp sự cố khi truy cập console vào container từ remote host qua NGINX, hãy đảm bảo thêm cấu hình WebSocket trong file NGINX để hỗ trợ tính năng này.
6. Tổng Kết
Portainer là một công cụ hữu ích cho việc quản lý Docker host, đặc biệt cho các dự án nhỏ không cần quá nhiều dịch vụ hay container. Tuy nhiên, với những dự án lớn, bạn nên xem xét việc cài đặt Portainer để có thể quản lý dễ dàng và hiệu quả hơn.
source: viblo