赞
踩
有的环境比较难配,在镜像里配置的版本总是与本地不同,导致程序起不来,今天就用个最基础的镜像,去配置anaconda,然后直接导入虚拟环境。
本次使用镜像:nvcr.io/nvidia/cuda:12.2.0-runtime-ubuntu20.04,1.97G的镜像。
直接
- # 先直接进去配置
-
- docker run -i -t nvcr.io/nvidia/cuda:12.2.0-runtime-ubuntu20.04 /bin/bash
-
- # 需要先更新一下包
-
- apt update
- apt-get update
-
- # 安装一下wget,用于下载anaconda包
-
- apt-get install -y wget
-
- # 下载anaconda
-
- wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
这里下载完毕后,需要安装一下,这里先是要给一下执行权限
- # 赋权命令:
-
- chmod +x Anaconda3-2023.09-0-Linux-x86_64.sh
-
- # 安装命令:
-
- sh Anaconda3-2023.09-0-Linux-x86_64.sh
-
这里需要一直按enter,直到出现选择yes or no,输入yes就行,停住不动的地方使用enter即可。
然后这里exit退出容器,直接打包即可。
docker commit 容器号 镜像名
激活之类的,可以直接在dockerfile里去写,暂时不需要在~/.bashrc改了
这里激活主要遇到的坑是:
1、虚拟环境激活的问题,不能直接写在sh文件里运行
2、激活后如何运行python的问题,有博客说过:“CMD 自动启动服务时,会因为CMD设置的启动服务指令,在执行source之前,所以还是会报错”
docker 启动某个镜像时,执行source ~/.bash_profile方法_docker source-CSDN博客
3、挂载代理的问题,需要在dockerfile里写好ENV
这里上一下最后的解决方法
- FROM conda_docker
- # 拷贝虚拟环境文件夹,但是不要放code文件夹下,因为后面我需要挂载机器上的目录到code里,放code文件夹里会被覆盖
- COPY ./conda_env /home/conda_env
- COPY ./main.py /home/code
- WORKDIR /home/code
- ENV http_proxy http://……
- ENV https_proxy http://……
- ENV PATH /root/anaconda3/bin:$PATH
- # 激活虚拟环境
- RUN /bin/bash -c "source /home/conda_env/bin/activate"
- RUN echo "source /home/conda_env/bin/activate" >> ~/.bashrc
- # 保证能用conda里的python运行
- ENV PATH /home/conda_env/bin:$PATH
- CMD ["python","main.py"]
- EXPOSE 8080
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。