Docker là môi trưởng ảo hoá chứa sẵn những thứ cần thiết để triển khai ứng dụng một cách nhanh chóng, bớt đi những bước cài đặt phần mềm tốn nhiều thời gian. Bài viết này không đề cập đến việc cài đặt và sử dụng docker. Chi tiết về cách cài đặt docker cho từng nền tảng có thể được tham khảo ở trang chủ docker.
Skywire là internet thế hệ tiếp theo, nó là một meshnet và được xây dựng dựa trên sự phi tập trung. Để hiểu rõ hơn Skywire các bạn có thể tham khảo bài viết này.
Cài đặt Skywire để làm gì? Hiện tại bạn có thể cài đặt Skywire và kết nối đến nút khác trong mạng Skywire để sử dụng tính năng SOCKS 5.
Yêu cầu
- Sử dụng Docker ở mức độ cơ bản.
- Máy có cài Docker với ít nhất 2Gb RAM tham khảo cài đặt docker
Lưu ý
- Hướng dẫn được thực hiện trên Windows 10 và sử dụng chương trình SSH như Putty hoặc MobaXterm
- Kí hiệu
# hay $ ở đầu dòng
là bắt đầu một câu lệnh trong Linux - Sau dấu
#
là câu lệnh được thực hiện ở tài khoản root trong Linux - Sau dấu
$
là câu lệnh được thực hiện ở tài khoản user trong Linux - Sau dấu
###
là comment và sẽ không bao gồm trong câu lệnh - Sau lệnh
nano
là cửa sổ soạn thảo, bạn copy hoặc gõ nội dung vào cửa sổ đó
Sau khi đã sẵn sàng bây giờ chúng ta bắt đầu:
Cài đặt skywire trong một docker container
Kiểm tra docker đã được cài đặt
$ docker version
Tạo một container với tên là skywire
, chạy Alpine linux trong một container
$ sudo docker create --name=skywire --net=host -it alpine
$ docker start skywire
Login vào container ở cửa sổ lệnh
$ docker exec -it skywire /bin/sh
Cập nhật và cài đặt những gói cần thiết để tạo những file thực thi của skywire
# apk update
# apk add go git musl-dev make
Tạo file thực thi ở thư mục home của user (ở đây là root)
# cd
# mkdir -p go/src/github.com/skycoin
# cd ./go/src/github.com/skycoin
# go get -u github.com/skycoin/skywire/cmd/...
Thêm biến GOPATH vào profile
# echo 'export ENV=$HOME/.rc' >>"$HOME/.profile"
# echo 'export GOPATH=$HOME/go' >>"$HOME/.rc"
Khởi động manager
# cd
# source .rc
# cd $GOPATH/bin
# nohup ./skywire-manager -web-dir ${GOPATH}/src/github.com/skycoin/skywire/static/skywire-manager > /dev/null 2>&1 & echo $! > manager.pid
Kiểm tra
# ps aux | grep manager
Kết quả trông như sau
Lúc này trình quản lý skywire đang chạy dưới tiến trình 526, và bạn có thể gõ vào trình duyệt <ip>:8000
để login với pass mặc định là 1234
Chạy node skywire
# cd
# source .rc
# cd $GOPATH/bin
# nohup ./skywire-node -connect-manager -manager-address :5998 -manager-web :8000 -discovery-address testnet.skywire.skycoin.com:5999-028ec969bdeb92a1991bb19c948645ac8150468a6919113061899051409de3f243 -address :5000 -web-port :6001 > /dev/null 2>&1 & echo $! > node.pid
Kiểm tra
# ps aux | grep node
Sau khi kiểm tra có node skywire đang chạy bạn quay lại cửa sổ manager ở trên để thực hiện kết nối với các nút khác trên mạng skywire và sử dụng SOCKS 5 như hướng dẫn ở bài này.
Sao lưu (backup) và khôi phục
Backup thư mục .skywire
Để backup public key và private key của skywire trong container bạn cần nén và copy về máy thư mục .skywire nằm ở thư mục home được tạo ra sau khi chạy skywire-manager và skywire-node ở trên.
Login vào container ở dòng lệnh và kiểm tra sự tồn tại của thư mục .skywire
$ docker exec -it skywire /bin/sh
# ls -a
Nén thư mục .skywire
thành file skywirex-backup.tgz
và kiểm tra thư mục chứa file nén hiện hành bằng lệnh pwd
# tar czvf skywirex-backup.tgz .skywire/
# pwd
Trường hợp này ta sẽ thấy kết quả file đã được nén ở thư mục /root
Copy file skywirex-backup.tgz
từ docker container về host thư mục hiện hành
# exit ### thoát khỏi container
$ docker cp skywire:/root/skywirex-backup.tgz .
Sau đó lấy file đã copy lưu vào một nơi nào đó an toàn.
Phục hồi thư mục .skywire
Quá trình phục hồi thư mục .skywire
là quá trình ngược lại quá trình sao lưu. Bạn cần copy file đã sao lưu (ở đây là skywirex-backup.tgz) vào thư mục của user container (ở đây là thư mục /root
) và giải nén.
$ docker cp skywirex-backup.tgz skywire:/root/skywirex-backup.tgz
Login vào skywire container và giải nén
$ docker exec -it skywire /bin/sh
# tar xzvf skywirex-backup.tgz
Mẹo
Để dễ dàng copy file bacup từ VPS hoặc máy được điều khiển kết nối thông qua SSH, bạn nên sử dụng chương trình MobaXterm để thực hiện kết nối đến máy cần điều khiển.
Tham khảo