docker部署

1. docker 安装

首先查看服务器上是否安装docker,(命令行输入):docker version
如果没安装就参照一下其他博客的安装教程,例如这个https://www.cnblogs.com/is-possible/p/12335257.html

因为我这边是安装好了的,所以就可以直接用了。

2. docker 部署

(1)拉取基础镜像

这个可以上docker-hub上面拉取,下面这个是pytorch的库。
https://registry.hub.docker.com/r/pytorch/pytorch/tags
根据你的项目实际版本选择你的pytorch版本,我这边选择的是:docker pull pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel
然后就可以在服务器上输入这行,拉取pytorch镜像。

(2)查看容器状态

查看容器状态:docker ps 可以查看当前服务器上docker容器的启动状态。

容器
会看到如上图所示的一个列表,(如果没有容器运行就是空的)。
第一列为容器ID,可以使用这个ID进入容器,查看自己的项目,每个容器都是独立的。
一般这个时候是还没有容器启动的。

(3)dockerfile

在自己的项目中新建一个dockerfile,放在项目目录外一层。

如下:

FROM pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel

ENV LANG C.UTF-8

WORKDIR /app

COPY ./requirements.txt /app/

RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt 

COPY ./data /app/

ENTRYPOINT ["sh", "./run.sh"]

在创建容器的时候,会安装dockerfile文件,一行一行执行。
尽量把初始化写详细,这样重复创建的时候速度会比较快。因为重复创建的时候,只会重新执行修改过的那一行。
第一行为FROM 即,为写入刚刚拉取的镜像,同时注意后面写入文件的路径。
依赖库requirements.txt 一般github上面的项目都会有这个,运行pip -r 就可以自动下载依赖库,也可以根据自己的配置写一个。

(4)打包docker镜像

执行下面命令:sudo docker build --tag project_name:1.0.0 .
projectName为创建的容器名字,后面接着版本号。(一般加上时间比较好)

执行完成后,可以执行命令:docker Images
此时就可以看到你新建的容器,但是一般还没执行。

(5)运行docker容器

通过这句命令:sudo docker run -itd --gpus 0 -p 8003:8002 project_name:1.0.0执行容器里面的run.sh。
执行完成后可以看到docker ps会出现正在执行的容器。

(6)进入指定容器

上面通过docker ps看到正在执行的容器,以及他的ID。此时可以通过ID进入容器。
通过命令:sudo docker exec -it [容器id] /bin/bash 进入指定容器。

并且可以在容器中进行调试。(一般会出现依赖库版本不对应,或者一些文件目录不对,导致项目运行出错,通过进入容器里面进行调试。)

3. 容器启动直接挂掉怎么办?

(1)bulid的时候会保留每一步操作。

在这里插入图片描述

(2)可以通过run -it {地址} 运行进入某一步操作的容器

我这里报错的位置在第七步,因为环境配置没配好,所以运行出错直接挂掉。
所以我就run道第六步,然后进入容器内执行看看报错信息。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐