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 một 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 trên các bo cài đặt Skywire sử dụng Linux.
$ 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 |
---|---|
x86-64 | amd64-latest |
arm64 | arm64v8-latest |
armhf | armhf |
Chi tiết các tag có thể tham khảo ở link sau:
https://hub.docker.com/r/skywirex/skywire-hypervisor
Skywire hiện 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
Cài đặt Hypervisor và chạy HypervisorUI
# docker create \
--name=hypervisor \
-it \
--restart=unless-stopped \
--net=host \
-v ~/.config/skywire:/root/skywire/config \
skywirex/skywire-hypervisor:<tag>
Thay thế
Ví dụ:
docker create \
--name=hypervisor \
-it \
--restart=unless-stopped \
--net=host \
-v ~/.config/skywire:/root/skywire/config \
skywirex/skywire-hypervisor:arm64v8-latest
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-it
cho phép chạy cửa sổ lệnh sau khi tạo 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
ở máy chính
Sau khi container được tạo tiến hành chạy container đó bằng câu lệnh sau:
# docker start hypervisor
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 hypervisor 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
Xem thông tin public key của Hypervisor
Public key của hypervisor cần được nhập vào file cấu hình của visor. Do đó ta tiến hành xem public key của hypervisor bằng câu lệnh sau:
# cat ~/.config/skywire/hypervisor-config.json
Public key cùng với thông tin của file cấu hình sẽ được hiển thị ra màn hình, bạn copy và lưu thông tin public key lại để sử dụng cho file cấu hình của visor.
Cài đặt Visor
Tương tự với hypervisor ta tiến hành tạo visor trong docker container và chạy nó với câu lệnh sau:
# docker create \
--name=visor \
--cap-add=NET_ADMIN \
-it \
--restart=unless-stopped \
--net=host \
-v ~/.config/skywire:/root/skywire/config \
skywirex/skywire-visor:<tag>
Chạy docker container với câu lệnh
docker start visor
Sau khi chạy visor thì bạn dừng visor để chỉnh sửa file cấu hình đã được tự động tạo ra. Việc chỉnh sửa file cấu hình cho phép hypervisor có thể truy cập và đọc thông tin từ visor từ đó hiển thị ra hypervisor UI.
docker stop visor
Chỉnh sửa nội dung file cấu hình skywire-config.json
trong thư mục ~/.config/skywire
như bên dưới
"stcp": {
"pk_table": null,
"local_address": "localhost:7777"
},
...................
"hypervisors": [{
"public_key":"hypervisor-public-key"
}],
Thay hypervisor-public-key
bằng public key đã lấy ở trên.

Giao diện hypervisor có một visor
Backup skywire
Nén thư mục skywire sử dụng câu lệnh sau
tar czvf 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.