Docker
是一个开源的容器化平台,用来解决电脑环境问题。如你刚刚完成了一段代码,身心舒畅,发给客户后准备好好休息一阵。但对方马上又发来了其他问题,原来运行这段代码需要python,MATLAB,cuda 等等多种环境配置。而对方是个电脑开机都不懂的小白,断然不可能配置好这些环境。你盯着聊天窗口和关机键陷入沉默……
docker解决了这个问题,它通过将应用程序和其依赖环境通通塞到一个独立的容器中,只需要安装一个docker就能够部署运行所有程序。实现轻量级、可移植和可扩展的软件部署和管理。可以改善应用程序的开发、部署和管理过程。
Docker 的基本概念包括:
1. 镜像(Image):镜像包含了运行应用所需的全部文件系统、库和软件依赖。用户可以基于现有的镜像创建自己的镜像。
2. 容器(Container):容器就像虚拟化的一台台主机,每个容器都是相互隔离的,具有自己的文件系统、进程空间和网络接口。容器可以被快速启动、停止、删除和复制,并且可以在不同的主机上运行。
3. 仓库(Repository):用于存放和共享镜像的地方。
FATE
联合人工智能推动技术(Federated AI Technology Enabler),通过多台计算机联合训练模型,判断模型优劣,是微众银行ai部门发起的开源项目。功能着重于“联合”,”隐私保护“,“AI”。
Docker的安装
window
官网安装帮助:Overview of Docker Desktop | Docker Docs
下载windows版,允许应用对设备的更改
Add shortcut to desktop勾选则在桌面添加快捷方式
点ok
等待更改完成后,重启更新
按win键搜索控制面板,点击程序
启用或关闭window功能
开启hyper-v,适用Linux的windows子系统
启动后会重启计算机
accept同意订阅
点finish
若出现如下报错,是hyper-v或linux下window的未开启,对话框的建议在cmd中运行描述内容中的最后一行代码。
若出现如下报错,是wsl出现问题,
点update wsl automatically自动更新,点update wsl manually手动更新
完成后
验证Docker是否正确安装:
win键+r,输入cmd
打开命令行工具,输入以下命令检查Docker版本:
docker --version
可能问题:
win11家庭版没有hyper- v,将下面代码复制进文本文件中,后更改文件后缀名为.bat。以管理员权限运行安装hyper- v。安装完成后输入y,重启。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
重启后windows后,显示未能应用自定义更改,不用担心,正在撤销更新。
多次重启,试过开启windows自动更新等等诸多方法仍未解决。
可以尝试重装windows系统。
linux
桌面版
安装docker桌面版 ,linux 示例选用ubuntu系统
在 Ubuntu 上安装 Docker Desktop |Docker 文档
其他版本在网页左侧选择相应的版本。
需要Gnome 桌面环境,没有打开终端运行如下代码安装:
sudo apt install gnome-terminal
出现问题开启root权限,运行后输入root密码
su root
apt安装软件包
使用脚本安装,脚本需要root权限输入密码
升级依赖项
sudo apt-get update
sudo apt-get upgrade
安装deb软件包,注意<version>-<arch>需要自己选择相应版本参数填入。
嫌麻烦截至目前新版为4.28.0-amd64
sudo apt-get install ./docker-desktop-<version>-<arch>.deb
图形化界面双击下载的deb包完成安装
命令行运行:sudo dpkg -i docker-desktop-<version>-<arch>.deb
安装完成后,查看版本
docker --version
桌面版问题无法解决的可以尝试装docker引擎
引擎版
方案1:apt存储库安装
首先,更新Ubuntu系统,设置docker存储库。开启终端设置好root权限后,把代码直接粘贴进去:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
然后装包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后测试
查看版本
docker --version
方案2:脚本安装
获取root权限
su root
下载运行脚本,并安装docker。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>
安装完成后,查看版本
docker --version
没有root密码解决方案:重置
如果不知道root密码,重启,按esc进入此页面
选第一行advanced options for ubuntu
之后进入系统选择界面选第二个
稍待片刻满屏代码运行完毕后,进入这个界面选root drop to root shell prompt
在窗口下方的命令窗口输入passwd root
输入新密码(注意输入时新密码不会显示),回车完成更改,重启。
FATE的部署
Docker部署
下载镜像:
docker pull federatedai/standalone_fate:${version}
再次注意,version添对应版本。
加载镜像包:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/fate/${version}/release/standalone_fate_docker_image_${version}_release.tar.gz
docker load -i standalone_fate_docker_image_${version}_release.tar.gz
docker images | grep federatedai/standalone_fate
启动容器:
docker run -it --name standalone_fate -p 8080:8080 federatedai/standalone_fate:${version};
测试:
source bin/init_env.sh
这样就完成了拉取镜像、加载镜像、启动容器和初始化环境的步骤。
Ubuntu单机部署
依赖docker和docker-compose
首先检测8080,9360,9380端口是否被占用。
netstat -apln|grep 8080;
netstat -apln|grep 9360;
netstat -apln|grep 9380
获取1.4.0版的软件包,并解压。
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone-fate-1.4.0.tar.gz
tar -xzvf docker_standalone-fate-1.4.0.tar.gz
如果这步出现问题可能是权限不够。
chmod 777 docker_standalone-fate-1.4.0.tar.gz
转到对应的文件夹执行部署。
cd docker_standalone-fate-1.4.0
bash install_standalone_docker.sh
出现问题依然可能是权限不够,进入压缩包的同名文件夹看看哪个文件没有权限。
或者直接递归添加权限。
chmod 777 docker_standalone-fate-1.4.0
chmod -R 777 docker_standalone-fate-1.4.0 #加参数r给子文件通通添加777权限
下图为上图后缀.sh的文件,出现问题可以打开查看对应报错,如“Not python images can‘t be load”就是解压时python镜像文件没找到,可能是解压出现差错,或者路径存在错误。
装完测试
CONTAINER_ID=`docker ps -aqf "name=fate_python"`
docker exec -t -i ${CONTAINER_ID} bash
bash ./federatedml/test/run_test.sh
另外还存在pypi部署,简答只用pip install pyfate==2.1.0一行命令,还没用过暂不介绍。
pypi:
FATE/deploy/standalone-deploy 在 master ·联邦人工智能/命运 (github.com)