公司电脑上已经下载好了miniconda,所以这里就不演示如何下载miniconda
直接步入正题!!!
第一步创建你要将python文件放置的路径
首先我会在docker的主文件夹下创建一个项目的文件夹
这个jd-docker是我的docker主文件夹,llm-fastapi是我的python项目文件夹
在这个文件夹下我们得创建两个文件,Dockerfile和requirements.txt
chat.py和generate.py是我的项目
Dockerfile文件准确来说是做docker的配置
requirements.txt是我的项目所需要的依赖包,需要用txt把我的依赖包给记录下来
Dockerfile
# 使用 Miniconda 基础镜像
FROM continuumio/miniconda3
# 设置工作目录为 /app
WORKDIR /app
# 将主机项目文件复制到容器中的 /app
COPY . /app
# 输出 /app 目录中的文件,用于调试
RUN ls /app && cat /app/requirements.txt
# 设置 Conda 使用国内镜像源并创建环境、安装依赖
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main && \
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free && \
conda config --set show_channel_urls yes && \
conda create -n flask_env python=3.9 -y --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free && \
echo "source activate flask_env" > ~/.bashrc && \
/bin/bash -c "source activate flask_env && pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /app/requirements.txt"
# 暴露端口
EXPOSE 5010
# 启动 Flask 应用,使用 flask_env 环境
CMD ["bash", "-c", "source ~/.bashrc && source activate flask_env && python app.py"]
一开始我用的是国外的镜像源,但是太慢还是报错
--override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
光加上上面那几个不够,因为在docker中就算配置了还是会默认去访问国外
所以我们得加上 --override-channels,将默认改变我们设置的,这里选用清华镜像源
Expose 5010 这里是我要做的端口号,你可以改成自己的
其他的不用改动就好了!!!
requirements.txt
这里要把你的依赖名写上就好了
然后把我们的项目拖到和这两个文件同一父目录下就好了
第二步
进入到我们的文件夹下
在这里我的父目录是llm-fastapi
sudo cd /home/jd~docker/llm-fastapi
这一步非常重要!!!
第三步用命令去执行docker映像
sudo docker build --no-cache -t flask-multiservice-app .
flask-multiservice-app . 由两部分构成 一个是容器名,一个是.
flask-multiservice-app是我们的创建的容器名,自己随便写
. 这个不是随便的,是当前目录,否则会报错
这一步是构建docker映射,--no-cache是清除缓存,重新构建
如果有报错看提示
sudo docker run -d -p 5010:5010 flask-multiservice-app
执行这个命令是启动flask-multiservice-app这个容器的映射
5010是我的端口号
flask-multiservice-app是我的容器名,这里和你上面的要对应上
运行完之后会给一长串的数字字母组成的,这是我们的容器id
docker run -it flask-multiservice-app /bin/bash
这个命令是我们可以进入到docker里面手动进行设置,比如说安装依赖都可以
sudo docker logs 43dd29f637bb9040e27c4682ce504ef270debef94c87f7d19c0a3d48b410b195
如果有报错了,我们就用上面的这个命令,这个是错误日志,让我找报错
最后一步
利用 sudo docker ps 看我们的端口号起来没,起来就成功了