首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在docker中运行pytorch模型服务器?

如何在docker中运行pytorch模型服务器?
EN

Stack Overflow用户
提问于 2021-03-10 01:28:18
回答 2查看 310关注 0票数 2

我正在尝试创建一个docker镜像,使其作为服务器运行,为pytorch中的模型提供服务。

我在本地机器上将.pt模型文件转换为.MAR文件,并将.MAR文件复制到docker镜像中。我创建了一个dockerfile:

代码语言:javascript
复制
FROM ubuntu:18.04
ENV TZ=Asia/Shanghai
ENV DEBIAN_FRONTEND noninteractive 
RUN apt-get update \
    && apt-get install --yes --no-install-recommends \
    tzdata

RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime\ 
    && echo ${TZ} > /etc/timezone \
    && dpkg-reconfigure -f noninteractive tzdata

RUN apt-get install python3 python3-dev python3-pip openjdk-11-jre-headless git wget curl -y
RUN python3 -m pip install torch torchvision torch-model-archiver torchserve==0.2.0
COPY densenet161.mar /model_store/
CMD torchserve --start --model-store model_store --models densenet161=densenet161.mar
EXPOSE 8080

我能够创建图像,但当我尝试打开图像并运行代码时,我无法访问该容器

代码语言:javascript
复制
docker exec -it 4b126bd87f21 sh

# torchserve --start --ncs --model-store model_store --models densenet161.mar

服务器正在运行。当我运行docker镜像时,它不工作。Docker容器正在运行,但我无法访问服务器。

我不知道问题出在哪里。

EN

回答 2

Stack Overflow用户

发布于 2021-06-22 12:26:46

我希望我能理解这个问题。

当您执行docker run torchserve:local ....时,默认情况下它会运行CMD,即torchserve --start --model-store model_store --models densenet161=densenet161.mar,但由于该命令是在后台运行的,因此新创建的docker容器将立即退出。由于同样的问题,也就是为了防止docker退出,可以添加tail -f /dev/null

看看torchserve https://github.com/pytorch/serve/blob/master/docker/dockerd-entrypoint.sh#L12的官方docker入口点,他们在末尾跟踪它,以防止docker退出

票数 2
EN

Stack Overflow用户

发布于 2021-06-16 20:56:57

我的建议是重建镜像。

提示:始终为您使用的容器命名--name标记示例: docker run --name container_name

尝试使用bash访问: docker exec -it 4b126bd87f21 bash

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66551874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档