docker安装教程以及fate部署

目录

一.安装docker

二.安装docker engine

三. 安装docker-compose

四. 部署FATE


对于dockers安装有很多版吧,我是在虚拟机上Ubuntu18.0.1的版本上安装的。

一.安装docker

首先卸载旧版本,包括docker、docker.io、docker.engine。

sudo apt-get remove docker docker-engine docker.io containerd runc

1准备工作
更新apt包源索引并安装。

sudo apt-get update


2允许apt使用HTTPS上的仓库。

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

3添加Docker官方GPG密钥。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

用指纹 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 验证是否已配置好密钥,搜索指纹的最后8个字符。

4下面配置稳定版本。要添加nightly或test版本,在命令中单词stable后面添加单词nightly或(和)test即可。

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

5更新apt包源索引。

sudo apt-get update

二.安装docker engine


1首先检查可行版本。

apt-cache madison docker-ce



显示列表如下。FATE官方配置文档建议docker版本为选择一个合适的版本.docker-ce-cli和docker-ce的版本要保持一致,否则可能出现server和client端docker版本不一致的情况。

sudo apt-get install docker-ce=5:18.09.3~3-0~ubuntu-bionic docker-ce-cli=5:18.09.3~3-0~ubuntu-bionic containerd.io



2hello-world验证是否安装成功。

sudo docker run hello-world

出现下面字段则成功

Hello from Docker!
This message shows that your installation appears to be working correctly.

3可以查询docker的版本。

sudo docker version

结果如下图所示。

Client:
Version: 18.09.3
API version: 1.39
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 06:53:11 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.3
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 05:59:55 2019
OS/Arch: linux/amd64
Experimental: false

将非root用户加入docker组
为了使非root用户也能使用docker,需要将其添加到docker组中,这一步可以方便后续的docker容器内操作,防止Got permission denied的情况出现。

sudo groupadd docker
sudo gpasswd -a $XXX docker
sudo gpasswd -a $USER docker
newgrp docker


完成以上步骤即完成添加。其中,XXX为你自己的用户名。然后我们可以重启docker,这里不重启也无大碍。

sudo systemctl restart docker

三. 安装docker-compose


1Docker-compose的安装就相对简单了,从github网站拉去对应的版本下载即可。FATE官方配置文档建议docker-compose版本为1.24.0,执行如下语句获取版本资源。

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2然后我们添加执行许可。

sudo chmod +x /usr/local/bin/docker-compose

检查版本以测试是否安装成功,同时版本号是否为1.24.0。

docker-compose --version


四. 部署FATE

1查看内存,20G不够,扩展到40G左右。扩展的方法参考:

虚拟机ubantu如何扩展系统内存_zx超的博客-CSDN博客

检查端口占用情况获取FATE安装包之前,我们要先检查8080、9360和9380端口是否已被占用,一般是没有的,不过保险起见可以先查询一下。首先将权限切换至root根用户,再使用netstat命令查看所有的服务端口,显示pid号。

su root
netstat -ap

另外也可以使用grep指令直接查询对应端口,如:

netstat -ap | grep 8080

获取安装包上一步完成后,需要从root用户切换回普通用户,其中XXX为自己的用户名。

su $XXX


2从微众银行的对应网址下载docker_standalone-fate压缩包并解压。

wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone-fate-1.5.0.tar.gz
tar -xzvf docker_standalone-fate-1.5.0.tar.gz


3执行部署将操作路径切换到fate文件夹下,bash指令进行部署。

cd docker_standalone-fate-1.5.0
bash install_standalone_docker.sh

4检测

这官方文档的指令是这样的。

CONTAINER_ID=`docker ps -aqf "name=fate_python"`
docker exec -t -i ${CONTAINER_ID} bash
bash ./python/federatedml/test/run_test.sh


若执行到第二步的时候就一直显示下面字段

Error: No such container: docker

可能是 CONTAINER_ID 的设置出了问题,系统不能通过 fate_python 对应到正确的容器,我的解决办法是先查询 docker 里面正在运行的容器。

docker ps

使用这个命令才发现所谓的fate_python容器并未处于运行状态,所以之前第二步无法正常执行,也就是无法进入该容器。那么接下来我们需要启动该容器。

docker start fate_python

启动完成后再查询当前正在运行的容器就有fate_python了,还有对应的CONTAINER_ID。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5ae7e57f09b4 docker_python “docker-entrypoint.sh” 2 days ago Up 5 hours 0.0.0.0:9360->9360/tcp, 0.0.0.0:9380->9380/tcp fate_python

接下来再运行exec命令进入容器即可。

docker exec -t -i fate_python bash

如果上一步未启动容器直接进入,系统会返回如下提示。其中的256位十六进制字符串为fate_python这个容器的hostname,前面查询得到的CONTAINER_ID就是hostname取前10个字符。在执行上一步exec命令时将fate_python容器名替换成CONTAINER_ID或者host那么均可。

Error response from daemon: Container 5ae7e57f09b4bee2af2e11be0798897ea72ed619f7d13477d1b4dcb9643b1e99 is not running

如果后面想要退出容器,直接命令行输入exit即可。

接下来bash指令进行测试。

bash ./python/federatedml/test/run_test.sh

在长篇大论的输出后,会有这样一行字,表示测试成功。

there are 0 failed test

5Toy测试
如果是完成单元测试后直接进行Toy测试,则已在容器中,不用再重新进入容器,所以直接执行如下命令。

python ./examples/toy_example/run_toy_example.py 10000 10000 0

如果返回结果有如下语句,则测试成功,部署完成

success to calculate secure_sum, it is 2000.0


————————————————

原文链接:虚拟机ubuntu18.04使用docker镜像单机部署standalone联邦学习开源项目FATE_weixin_45131630的博客-CSDN博客

你可能感兴趣的:(fate,docker,docker,ubuntu,linux)