Docker, một thứ đã quá quen thuộc với coder ngày nay. Coder đủ thể loại từ backend, frontend tới devops chắc chắn đều đã và đang sử dụng nó. Việc sử dụng docker sau thời gian thường sinh ra nhiều rác làm tốn nhiều tài nguyên của máy đặc biệt là dung lượng ổ đĩa. Việc dọn dẹp lại docker sẽ được thực hiện thông qua CLI của docker. Tuy nhiên, đối với những coder lâu lâu chỉ làm việc với docker thì việc sử dụng CLI mất khá nhiều thời gian nên việc sử dụng giao diện để quản lý là hiệu quả hơn. Vì vậy ở bài viết này mình sẽ giới thiệu Portainer - một trình quản lý docker chạy trên web.

Cài đặt

Bài viết này mình chủ yếu tập trung cho coder sử dụng docker cho môi trường dev local sử dụng hệ điều hành Linux/MacOS.

Việc cài đặt portainer rất đơn giản. Bạn chỉ cần tạo 1 persistent volume để lưu dữ liệu và chạy portainer/portainer container.

# Tạo volume cho portainer
docker volume create portainer_data

# Tạo portainer container
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Tất nhiên là bạn có thể thay đổi -p 9000:9000 thành port khác nếu bạn thích.
Sau khi portainer container đã được chạy, truy cập http://localhost:9000 để vào UI của portainer. Ở lần chạy đầu tiên, portainer sẽ yêu cầu bạn tạo người dùng và connect tới docker endpoint. Ở đây mình connect tới local endpoint
uc?id=1e0aJAhCRXQBopU28DO9WBKY59kKGFWEl&export=download

uc?id=1_uNkIR8bJCzJpX5_6wb6Llnqnj3LaEbE&export=download
Sau khi connect tới local endpoint
uc?id=1Zf2LnPk56RpjkI8x3-s1TuvLjOZPP4xy&export=download

Ngoài ra, Portainer cũng có thể cài đặt cho các môi trường khác cho Windows containers, docker swarm,... bạn có thể tham khảo thêm ở https://www.portainer.io/installation/

Update

Việc Update cũng rất đơn giản!!!

# Xoá portainer container
docker rm -f portainer

# Xoá portainer/portainer image
docker image rm portainer/portainer

# Pull latest portainer/portainer image và tạo lại container mới 
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Tính năng

Chức năng cho quản trị

  • Quản lý user với permission, team và role
  • Quản lý Docker endpoint:
    • Local endpoint
    • Docker API endpoint
    • Portainer agent / Portainer Edge Agent
    • Azure ACI
  • Quản lý Docker Registry

Chức năng quản lý endpoint

Ở màn hình home chọn endpoint cần quản lý.
Tổng quan về endpoint:
uc?id=1J4o4CZeMWC1J9lPufkoYha00CTy4EeFs&export=download
Stacks để quản lý các compose:
uc?id=17RqMBYh-VOIbZnI6SOlar9Gi-UtjG11j&export=download
Quản lý các container:
uc?id=1-fYcaZ5JVXBYu2MwEYC1k3L3K0dFtdkN&export=download
Ở đây bạn có thể start, stop, remove, ... và nhiều thứ khác để quản lý container.
Xem log của container:
uc?id=1phi0k821reGW-2VGL4mqS9AsY3fTPomF&export=download
Monitoring container:
uc?id=1h37TgtNolfip3LBtb73fdHVnLCDsrYel&export=download
Chạy thẳng lệnh trong container:
uc?id=10hYmQv9Pjpgf6l0OiNUvHkFzqS6Bu-QQ&export=download
uc?id=1itcu6RsoBCoB9t_MbZ9uQ94coblh7WAZ&export=download
Quản lý image:
uc?id=1eXDueERm11K7K6vyN9yyaBFRbwR0CvRT&export=download
Quản lý volume:
uc?id=1UeaD3pRW9RiOi2p-6aLcduC3gUlYz_4l&export=download

Giao diện quản lý image, volume rất trực quan, nhìn vào là biết image, volume nào không còn được sử dụng để clean.

Kết luận

Bài viết chỉ giới thiệu qua Portainer với screenshots các tính năng để có cái nhìn tổng quan về Portainer. Nếu bạn thích nó thì hãy cài nó và trải nghiệm hết các tính năng của nó. Thông qua nó bạn có thể hiểu thêm các tính năng của docker mà trước đó bạn có thể chưa biết. :))

Với Portainer việc quản lý docker đã trở nên dễ dàng và trực quan hơn rất nhiều so với việc phải dùng CLI. Đỡ phải nhớ lệnh rồi lại google rất mất thời gian cho coder ít dùng docker. Hy vọng bài viết giúp ích cho các bạn.