Chạy Skywire trong Docker container

Docker cho phép chúng ta triển khai nhanh một ứng dụng, dễ cài đặt và bảo trì nên nó là một ưu thế để triển khai Skywire một cách nhanh chóng. Các bước để cài đặt có thể tóm tắt như sau:

  • Flash file ảnh (image) lên bo SBC chạy skywire và cập nhật
  • Thêm SSH keys để bảo mật SSH(tùy chọn - có thể bỏ qua)
  • Cài đặt Docker cho bo SBC
  • Chạy lệnh Docker để cài đặt Skywire
  • Cấu hình Skywire

Cài đặt Docker

Để chạy Skywire trong Docker container thì bạn phải có Docker được cài đặt sẵn. Nếu chưa cài đặt Docker, bạn thực hiện lệnh sau để cài đặt Docker.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Câu lệnh đầu tiên thực hiện tải một script ở trang chủ Docker và câu lệnh thứ 2 thực thi script để cài đặt Docker trên bo của bạn

Xem thêm cài đặt Docker ở link sau https://docs.docker.com/engine/install/

Cài đặt Skywire sử dụng docker

Hiện tại, file ảnh docker hỗ trợ những kiến trúc sau:

Kiến trúc tag
aarch64 v0.4.2-aarch64
armhf v0.4.2-armhfv7
x86_64 v0.4.2-x86_64

Chi tiết các tag có thể tham khảo ở link sau:

https://hub.docker.com/r/skywirex/skywire

Skywire bao gồm hai thành phần chính là Visor và Hypervisor.

  • Visor: tương tự như một nút (node), là thành phần cơ bản tạo nên mạng skywire
  • Hypervisor: trình quản lý visor, thông qua giao diện của trình quản lý ta có thể tương tác với visor

Cài đặt skywire nghĩa là bạn cần cài đặt Visor và Hypervisor lên bo mạch. Bạn chỉ cần cài một Hypervisor để điều khiển nhiều visor khác nhau thông qua HypervisorUI

Kể từ phiên bản v0.4, mạng skywire đã tích hợp chung cả visorhypervisor. Qui định bo mạch nào đóng vai trò là hypervisor bạn chỉ cần chỉ định nó ở trong file cấu hình.

Cài đặt skywire

docker create \
    --name=visor \
    --net=host \
    -v ~/.config/skywire:/opt/skywire \
    --restart=unless-stopped \
  skywirex/skywire:<tag> skywire-visor

Thay thế tương ứng với kiến trúc hệ điều hành được hỗ trợ ở bảng trên.

Ví dụ:

docker create \
    --name=visor \
    --net=host \
    -v ~/.config/skywire:/opt/skywire \
    --restart=unless-stopped \
  skywirex/skywire:v0.4.2-aarch64 skywire-visor

Câu lệnh Docker trên được giải thích chi tiết như sau:

  • docker create gọi docker tạo một container
  • --restart=unless-stopped khởi động lại nếu không gọi lệnh dừng
  • -v ~/.config/skywire lưu file cấu hình ở thư mục ~/.config/skywire bo mạch

Sau khi container được tạo tiến hành chạy container đó bằng câu lệnh sau:

# docker start visor

Sau khi thực thi câu lệnh này container tên hypervisor sẽ thực hiện kiểm tra file cấu hình đã tồn tại hay chưa. Nếu chưa tồn tại file cấu hình, nó sẽ tạo một file cấu hình và lưu ở thư mục ~/.config/skywire. Nếu đã tồn tại file cấu hình thì sẽ dùng file cấu hình đó để chạy container hypervisor.

Kiểm tra trạng thái của container visor ta có thể thực hiện lệnh sau:

# docker ps -a

Lúc này bạn sẽ truy cập được vào UI của hypervisor qua địa chỉ <Địa chỉ IP cài Hypervisor>:8000, ví dụ 192.168.1.11:8000, mặc định sẽ không có password để login UI, hypervisorUI sẽ trông như sau:

Giao diện hypervisor

Giao diện hypervisor

Sao lưu và phục hồi skywire

Sao lưu

Việc sao lưu skywire chỉ cần thực hiện sao lưu private keypublic key nằm ở file cấu hình (file json). Để tiện cho việc sao lưu, câu lệnh dưới đây sao lưu cả file cấu hình.

Nén thư mục skywire sử dụng câu lệnh sau

tar zcvf skywire-backup.tgz ~/.config/skywire

Copy và lưu ở một nơi an toàn để có thể phục hồi lại nút khi cần.

Phục hồi

Copy file cấu hình lại thư mục home và thực hiện giải nén

tar zxvf skywire-backup.tgz