一:docker打包为镜像
第一步:拉取镜像。
docker hub 网站上 https://registry.hub.docker.com/
查找合适的镜像拉取
例如:我需要tensorflow的镜像
docker pull tensorflow/tensorflow:1.14.0-gpu-py3
第二步:运行拉取的镜像:
gpu代表使用的gpu all 使用全部gpu
net host 代表使用与本物理机一样的ip
-v 映射本机地址和docker地址
#使用全部gpu
docker run -it --gpus all --net host -v /home/usr/usr_dir/:/workshop tensorflow/tensorflow:1.14.0-gpu-py3 /bin/bash
#使用其中2个gpu
docker run -it --gpus '"device=1,2"' --net host -v /root/lixianku_docker:/workshop mld:v1 /bin/bash
第三 步:装各种包,自己想装啥装啥
apt install ipython3
第四步:保存自己装的各种包
exit 退出docker
docker ps -a 显示container id和其他信息
docker commit <当前运行的container id> tensorflow/tensorflow:1.14.0-gpu-py3
第五步:保存成镜像文件
docker save -o retrival-v1.img tensorflow/tensorflow:1.14.0-gpu-py3
二:在镜像下启动自己的服务,查看是否能正常启动
docker run -it --gpus ‘“device=0”’ --net host -v /home/usr/usr_dir/:/workshop retrival:v3 /bin/bash
遇到问题:[ERROR] Can’t connect to (‘0.0.0.0’, 5000)
原因:阿里云没有开放5000端口,换成8008,就可以了
docker run -it --gpus all --net host -v /share_v3/zhurui/:/workshop retrival:v2 /bin/bash
简单运行docker指令:
docker run -it --gpus all --net host -v /home/ubuntu/workshop:/workshop trt723_cu102:v3 /bin/bash
指定gpu:
docker run -it --gpus ‘“device=1,2”’ --net host -v /root/lixianku_docker:/workshop mld:v1 /bin/bash
后台起docker:
docker run -itd --name 名字 --gpus all --net host -v /home/ubuntu/workshop:/workshop trt723_cu102:v3 /bin/bash/
进入容器
docker exec -it 名字 /bin/bash/
三:推送到hub上
a 登录网页生成一个账号,拉入到组里
https://hub.cejilaefj5.com,生成下账号【登录自动生成】
由相关管理人员拉入到组里.具体url: https://hub.myteam.com/team/mlp
仓库可以在组里namespace下创建 自己的仓库名,例如:retrival
b.先登录
docker login -u username -p passwd url
示例:
docker login -u aiejf -p mypasswd hub.myteam.com
c 为自己的docker指定仓库。
docker tag repo:tag_name hub.myteam.com/mld/repo:tag_name
示例:
docker tag retrival:v2 hub.myteam.com/mld/retrival:v2
注意:
不改名的话docker pull 会pull到公共仓库
改了名字后会生成一个新的仓库地址。pull就可以到自己的指定仓库
d 将docker push 到仓库里面
docker pull repo:tag_name
示例:
docker pull hub.myteam.com/mld/retrival:v2
四 docker相关
4.1 docker教程
https://www.runoob.com/docker/docker-tutorial.html
docker rm container #删除容器
docker rmi retrival:v2 #删除images
4.2 docker镜像
模型推理docker镜像:
docker pull boypy/trt723_cu102:v3
主服务镜像:
阿里云4号机,镜像为mld
docker hub地址:
https://registry.hub.docker.com/
4.3 docker分层
查看docker 分层信息
docker history retrival:v2 查看镜像分层信息
有时候docker太大不好推上去。可以看下分层的数据
4.4 镜像制作的方法
4.4.1、本地导入导出镜像
请参考:Docker 架构原理及简单使用
导出:docker save nginx >/tmp/nginx.tar.gz
导入:docker load </tmp/nginx.tar.gz
4.4.2、docker commit 命令创建镜像副本
dock commit -m 容器 镜像名
请参考:Docker docker commit方法镜像制作
4.4.3、docker file
创建dockerfile
请参考:https://www.cnblogs.com/zhangxingeng/p/11394374.html
2. dockerfile build
docker build -t retrival:v1 .
五.linux运行docker的准备
Install NVIDIA driver
Install docker
Install nvidia-docker
六. 上传文件到oss:
1 使用ossutil64工具,需要安装运行:
wget http://gosspublic.alicdn.com/ossutil/1.7.3/ossutil64
登录验证信息:
secret_id:
secret_key:
url:oss://qz-test/ailearn-mudel-test/
a.先登录
ossutil64 config -e 华北/青岛/北京等地区 -i AccessKeyID -k AccessKeySecret
示例:
./ossutil64 config -e oss-cn-beijing.aliyuncs.com -i secret_id -k secret_key
b.上传目录
./ossutil64 --recursive --parallel=5 cp from_dir URL/des_dir
示例:
./ossutil64 --recursive --parallel=5 cp /home/usr/data.tar oss://qz-test/ailearn-mudel-test/dir_name/myfile.tar
2 也可以下载oss浏览器进行上传
进入下网页选择合适的版本下载:
https://help.aliyun.com/document_detail/209974.htm?spm=a2c4g.11186623.0.0.2f649c1djLiDzw#task-2065478
安装后登录:
进入后可以查看文件夹,以及操作