基本工具 | Docker生产环境部署

Docker hub

从Docker官网中获取想要的基础镜像:如pytorch、tensorflow或者基于conda构建的基础镜像。

拉取镜像

docker pull ubuntu
docker pull bitnami/pytorch

拉取最新版本

docker pull bitnami/pytorch:latest

拉取特定版本

docker pull bitnami/pytorch:1.13.1

创建容器

利用容器创建训练环境,进行环境隔离。容器名为pytorch,基础镜像为bitnami/pytorch:1.13.1

docker run -it --name pytorch bitnami/pytorch:1.13.1 /bin/bash

-d 后台运行

docker run -itd --name pytorch1.13 -v /path/to/app:/app bitnami/pytorch:1.13.1 /bin/bash

-v:增加挂载磁盘路径

docker run -itd --name pytorch1.13 -v /path/to/app:/app bitnami/pytorch:1.13.1 /bin/bash

增加端口-p,当使用tensorboard查看训练效果时,一个端口可能被占用或不够用

docker run -itd --name pytorch1.13 -v /path/to/app:/app \
  -p 8081:8081 -p 8082:8082 bitnami/pytorch1.13.1 /bin/bash

容器内使用gpu,–gpus all

docker run -itd --name pytorch1.13 -v /path/to/app:/app \
  -p 8081:8081 -p 8082:8082 --gpus all bitnami/pytorch1.13.1 /bin/bash

设置容器与实体机共享内存大小 --shm-size 16G

docker run -itd --name pytorch1.13 -v /path/to/app:/app -p 8081:8081 -p 8082:8082 \
      --gpus all --shm-size 16G bitnami/pytorch:1.13.1 /bin/bash

具体实例,容器名为pytorch1.13(尽量以容器的环境和版本名字)

docker run -itd --name pytorch1.13 -v /home:/home -p 8081:8081 -p 8082:8082 \
      --gpus all --shm-size 16G bitnami/pytorch:1.13.1 /bin/bash

删除容器

docker rm -v pytorch1.13
docker rm -f pytorch1.13

查看容器状态

查看正在运行的容器磁盘、gpu内存占用率

docker stats

查看启动容器的情况、端口

docker ps

查看停止后的容器

docker ps -a

启动、停止容器

重新启动停止的容器,容器名为pytorch

docker restart pytorch1.13

进入容器内部

docker exec -it pytorch1.13 /bin/bash

然后cd切换到相应路径,pip安装需要的包。

停止容器

docker stop pytorch1.13

生产镜像打包

step1: 选择一个基础镜像
例如 docker pull continuumio/miniconda3,
此时需要注意的是python版本,看你需要python 3.6 / python 3.8 / python 3.10。
不指定就是拉去的最新镜像,本人需要python 3.8,
故拉取docker pull continuumio/miniconda3:4.8.3

step2:实例化一个容器
为了方便,还是映射一个端口用于测试实际代码。-v挂载数据卷就不需要了,
可通过docker cp的方式将宿主机数据负载到容器内部。
docker run -itd --name py38 -p 7001:7001 --shm-size 16G \
    --gpus all continuumio/miniconda3:4.8.3 /bin/bash

step3:启动容器
docker start py38
进入容器内部:docker exec -it py38 /bin/bash
查看conda、pip命令是否有效,如conda list 或 pip list 查看已经安装的包。

step4:安装所需的包
pip安装必要的包,如torch
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 \
    --extra-index-url https://download.pytorch.org/whl/cu113
可写到requirements.txt文件中,
通过pip install -r requirments.txt -i https://pypi.tuna.tsinghua.edu.cn/simple实现安装
ffmpeg则使用conda安装方便且简单:conda install ffmpeg
如果有版本要求,则需尤其注意。

step5:复制数据到容器内部
实例化的容器在/home目录下是空的,可创建文件夹,如model、data
那么,/home目录下就有两个文件夹(容器内部路径)
/home/model/
/home/data/
将宿主机的模型代码、权重、数据复制到容器内部,
如 docker cp /home/wei/gan/model py38:/home/model
docker cp /home/wei/gan/data py38:/home/data
其中/home/wei/gan/是服务器路径或本机路径(容器外的真实路径),
py38是容器名,或是容器id都是可以的

可以复制一个文件夹、一个文件也是可以的
如docker cp /home/wei/gan/mydemo.py py38:/home/mydemo.py

step6:在容器内调试代码,检查必要的环境,安装缺少的包。

致读者

本人才疏学浅,未免有理解不到位之处;为方便总结与回顾,特以此方式记录学习过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值