conda 环境下 docker 使用

        AI 项目对 python 和各个组件的版本与依赖总会比较麻烦,尤其是一些模型或安装包在国内找不到合适的镜像,再或者服务器无法访问公网,或是可以访问但多少受到一些限制,所以拉个 docker 可以部分解决一些问题。

        首先编辑 dockerfile 文件,根据 AI 项目所使用的模型和组件包指定 python 的版本,创建用户及路径,并设置路径所属用户权限,然后指定用户和工作路径,最后是 docker 启动时调用的启动脚本。项目中所使用到的模型、算法和实现可以根据情况复制到 docker 内部,也可以在启动的时候通过挂载的方式访问。

# 创建基础镜像
FROM python:3.10.13

# 创建用户路径
RUN useradd -m xiaoming

# 修改路径归属
RUN chown -R work /home/xiaoming

# 设置工作目录
USER xiaoming
WORKDIR /home/xiaoming

# 复制相关文件
# COPY ./models/my-models /home/xiaoming/my-models

# 启动系统服务
ENTRYPOINT ["bash","/home/xiaoming/xiaoming-services/scripts/start.sh"]

        dockerfile 文件编辑完成以后,在当前路径下执行下面命令,其中 xiaoming-services 为构建的镜像名称,model 为镜像标签和版本。再等待一段时间以后,docker 镜像就构建完成了,上述镜像在不复制相关文件的情况下,镜像尺寸大约占用 1G 磁盘空间。

docker build -t xiaoming-services:model .

        docker 镜像创建完成以后,可以执行下面命令启动容器。gpus 参数允许 docker 使用 gpus 资源,参数 name 为容器名称,参数 itd 允许以交互模型运行容器,并为其分配一个伪终端,同时要求该容器以后台模式运行,并返回启动容器 ID。参数 p 为容器端口到主机端口映射,参数 v 为绑定容器挂载点到主机目录,这里挂载的目录和文件,即可以复制到容器内,也可以通过挂载的方式访问,命令的最后是容器的名称和标签或版本号。

docker run --gpus all --name my-model -itd -p 9081:9081 -v /home/xiaoming:/home/xiaoming xiaoming-services:my-model

        如果容器启动正常的话,可以执行下面命令登录容器,其中 64c25bc66fae 为容器 ID,/bin/bash 为打开终端交互,这时执行进程查看指令,即可看到项目进程的各项信息了。如果此时杀掉进程或进程异常终止,容器本身也会终止。

docker exec -it 64c25bc66fae /bin/bash

        下面是 docker 容器的打包和还原命令,以及设置容器随 docker 服务自启命令。

# docker 打包
docker save my-services:my-model -o my-services:my-model.tar.gz

# docker 解压
docker load -i my-model.tar.gz

# docker 自启
docker update --restart=unless-stopped my_container

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉力文武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值