B. 使用Docker部署 (MacOS)#
本指南帮助您在本地机器或运行MacOS的云端虚拟机上部署Datasite服务器。
前提条件:#
安装Docker: Docker for Mac
测试Docker是否正常工作#
要测试您的先决条件是否已正确安装,请尝试运行:
docker ps
或 docker info。
这不应该返回任何错误。如果出现错误,请检查您是否有运行Docker命令的正确权限。
要测试Docker能否拉取并运行镜像,请执行:
docker run hello-world
以sudo权限运行
根据您的配置,可能需要使用sudo来运行Docker命令。在这种情况下,请运行sudo docker run hello-world进行验证
配置资源#
请确保已为Docker分配足够的资源。您可以通过进入Docker > 首选项 > 高级来增加分配给Docker的资源。
服务器部署#
提供了一个单行便捷脚本来通过Docker启动您的服务器。您可以在执行前阅读该脚本。
第一步:下载脚本#
按以下方式下载:
curl -o setup.sh https://raw.githubusercontent.com/OpenMined/PySyft/syft-setup-script/scripts/docker-setup.sh
步骤2:执行脚本#
要部署您的服务器,可以使用一系列参数来设置您希望启动的服务器类型及其配置:
--version或-v: 您想设置的PySyft版本--name或-n: 您想为服务器指定的任意名称--side或-s: 高或低 (未指定时默认为high)--root-password或-password: 您想为root用户设置的密码(如果未指定,默认值为changethis)--root-email或-email: 您想为root用户设置的邮箱 (未指定时默认为info@openmined.org)--type或-t:datasite或gateway--port或-p: 指定要分配的端口号
bash setup.sh -v {{VERSION}} -n {{SERVER_NAME}} -s {{SERVER_SIDE}} -t {{SERVER_TYPE}} -p {{PORT}} --password {{PASSWORD}} --email {{EMAIL}}
注意:
您可以访问文档的这一部分来了解不同的服务器类型及其角色,以及不同的服务器端。
示例:#
该命令的示例如下所示:
bash setup.sh -v 0.8.2-beta.6 -n my_server_1 -s high -t datasite -p 8081 --password mypassword --email myemail
要检查服务器是否正常运行,可以执行docker ps -a查看已部署的docker容器。您也可以运行curl localhost:8081。
服务器已启动并运行,您已成功在您的机器上部署了一个PySyft服务器!
在Jupyter Notebook中启动客户端#
在这一步中,您需要一个客户端服务器来与刚刚部署的PySyft服务器进行交互。这里的客户端是一个运行与服务器容器相同版本PySyft的Jupyter笔记本。
这是一个便捷的设置方式,但你也可以在Python3.10+环境和所需PySyft版本中自行启动Jupyter Notebook。
我们需要按以下方式启动客户端:
docker run --rm -it --network=host openmined/syft-client:${VERSION}
其中 ${VERSION} 是您想要运行的 PySyft Client 版本号。该版本必须与您在部署步骤中之前传递的版本相同。
保持笔记本运行#
通常,当您退出终端时,Jupyter notebook实例会终止。为了让它在关闭终端后仍能持续运行以便随时访问,建议在screen或tmux会话中运行该命令。有关如何使用screen的更多信息,请参阅此链接:Screen Command 或 tmux:Tmux Command。
访问笔记本#
如果您在本地机器上运行了上述命令,应该能看到笔记本运行的本地URL,并在浏览器中访问它。
如果您在虚拟机上运行,可能需要在本地浏览器访问笔记本时执行额外步骤。考虑到上述命令是在映射到主机网络的容器中运行预打包的Jupyter笔记本,有几种方法可以在本地浏览器中访问该笔记本。
如何在浏览器中访问远程笔记本
您可以使用SSH端口转发在本地浏览器中访问notebook。具体操作方法可参考此链接示例:Jupyter SSH Port Forwarding
你也可以在虚拟机的网络安全组中开放8888端口,然后通过本地浏览器访问
http://<VM_IP>:8888来使用笔记本。
如果此步骤成功,您将在浏览器中进入Jupyter笔记本界面。请创建一个新笔记本并运行以下命令来测试您的完整设置是否已准备就绪可供使用:
import syft as sy
sy.login(url="localhost:80", email="[email protected]", password="changethis")
# Pass the email and password used to create the server or default as above is no email and password was used during server creation
如果一切顺利,您应该能够登录高安全区或低安全区域(取决于您上面的选择)。现在您可以在客户端服务器上开始运行PySyft命令,与您刚部署的PySyft服务器进行交互。