Thiết lập môi trường
Trong phạm vi bài này, chúng ta sẽ thực hành trên môi trường Linux, Ubuntu 20.04 LTS.
Nếu server chưa cài đặt docker, download file ubuntu.sh tại đây và chạy câu lệnh như sau:
ubuntu@single-docker:~$ sh ubuntu.sh
# Logout và login server
ubuntu@single-docker:~$ docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:52 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:01:20 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
Cài đặt Portainer
Standalone server
$ docker volume create portainer_data
$ 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
Swarm Cluster
$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy --compose-file=portainer-agent-stack.yml portainer
Portainer cơ bản
Tiếp theo, chúng ta mở trình duyệt vào phần admin của Portainer như sau http://localhost:9000 hoặc http://[server-ip-address]:9000
Lần đầu sử dụng, Portainer sẽ yêu cầu đặt mật khẩu cho administrator
Thiết lập kết nối đến container environment
Nếu thành công, bạn sẽ thấy giao diện admin như sau:
Một số chức năng quản lý chính
Quản lý Team/User
Endpoints: local, docker, docker swarm, kubernetes, edge, aci
Registries: hỗ trợ quay.io, azure, gitlab, hoặc custom
Nhìn chung, giao diện admin khá dễ hiểu, rõ ràng, không quá phức tạp. Phù hợp cho những hệ thống vừa và nhỏ, không cần automation, restoration…
Docker và Swarm
Stacks: [Chỉ có trên Swarm] triển khai và quản lý nhiều services cúng một lúc. Hỗ trợ tạo file docker-compose.yml trực tiếp trên web. Ngoài ra, chúng ta có thể upload từ máy tính, hoặc từ git repository.
Webhooks: tự động update service khi image được cập nhật
Containers: deploy container trực tiếp bằng UI
App Templates: deploy stack từ mẫu có sẵn, Portainer cũng cung cấp công cụ để tự tạo template riêng.
Images: quản lý Docker image trực tiếp bằng Portainer
Networks: quản lý và thiết lập network cho containers, hỗ trợ các loại sau: Bridge, Macvlan, Overlay, Ipvlan
Services: hiện chỉ hỗ trợ swarm mode
Volumes: quản lý vùng chứa, cho phép download hoặc upload trực tiếp.
Configs: quản lý tập trung dữ liệu không bảo mật, có thể xem là cập nhật bằng UI, chỉ hỗ trợ swarm mode
Secrets: giúp quản lý dữ liệu cần bảo mật, không xem được trực tiếp trên UI, chỉ hỗ trợ swarm mode
Kubernetes
Applications: hỗ trợ triển khai application bằng UI và YAML file.
Resource Pools: tương đương khái niệm namespace
Volumes: hiện chỉ hỗ trợ xem thông tin cơ bản
Configurations: tương đương ConfigMaps và Secrets trong kubernetes
Clusters: thông tin trạng thái của Cluster như dung lượng bộ nhớ đã sử dụng/, cpu
Triển khai demo website
Pull nginx image từ Docker Hub
Tạo docker volume
Tạo container
Mở trình duyệt tới url http://localhost:8080 hoặc http://[server-ip-address]:8080 chúng ta sẽ thấy màn hình Welcome của NGINX
Upload demo website lên volume nginx-volume-demo
Trong phần quản lý volume của Portainer cho chúng ta biết đường dẫn tương ứng trên HOST của volume nginx-volume-demo là /var/lib/docker/volumes/nginx-volume-demo/_data
Chúng ta sẽ sử dụng 1 theme website bất kỳ và upload lên folder bên trên. Bạn có thể download tại đây.
Reload trình duyệt để xem kết quả nhé!
Giờ đây chúng ta không còn thấy màn hình Welcome của NGINX nữa, thay vào đó là trang Landing Page vừa được upload lên.
CHÚC CÁC BẠN THÀNH CÔNG!
Không có nhận xét nào:
Đăng nhận xét