docker pycharm 连接_使用docker来配置pycharm开发和训练环境

本文介绍了如何通过Docker搭配PyCharm创建PyTorch的开发和训练环境。首先,详细阐述了如何在宿主机上安装Docker环境,然后通过Dockerfile或基础Ubuntu镜像新建Docker镜像,包含安装PyTorch及其依赖的步骤。接着,讲解了PyCharm的Docker配置,包括设置Docker守护进程、配置Python解释器和运行配置。文章还列举并解答了可能遇到的问题,如模块缺失、CUDA环境问题、数据集路径、共享内存不足等。
摘要由CSDN通过智能技术生成

本文主要介绍使用docker+pycharm方式来搭建pytoch训练平台

操作流程如下:

一、宿主机docker环境安装

二、新建Docker镜像

有两种方式:

1、直接新建Dockerfile的方式生成

1)新建一个Dockerfile文件

ARG CUDA="11.0"ARG CUDNN="8"FROM nvidia/cuda:${CUDA}-cudnn${CUDNN}-devel-ubuntu16.04RUN echo'debconf debconf/frontend select Noninteractive' | debconf-set-selections#install basics

RUN apt-get update -y \&& apt-get install -y apt-utils git curl ca-certificates bzip2 cmake tree htop bmon iotop g++\&& apt-get install -y libglib2.0-0 libsm6 libxext6 libxrender-dev#Install Miniconda

RUN curl -so /miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh \&& chmod +x /miniconda.sh \&& /miniconda.sh -b -p /miniconda \&& rm /miniconda.sh

ENV PATH=/miniconda/bin:$PATH#Create a Python 3.6 environment

RUN /miniconda/bin/conda install -y conda-build \&& /miniconda/bin/conda create -y --name py36 python=3.6.7\&& /miniconda/bin/conda clean -ya

ENV CONDA_DEFAULT_ENV=py36

ENV CONDA_PREFIX=/miniconda/envs/$CONDA_DEFAULT_ENV

ENV PATH=$CONDA_PREFIX/bin:$PATH

ENV CONDA_AUTO_UPDATE_CONDA=false

RUN conda install-y ipython

RUN pip install requests ninja yacs cython matplotlib opencv-python tqdm#Install PyTorch 1.0 Nightly

ARG CUDA

RUN conda install pytorch-nightly cudatoolkit=${CUDA} -c pytorch \&& conda clean -ya#Install TorchVision master

RUN git clone https://github.com/pytorch/vision.git \&&cd vision \&&python setup.py install#install apex

RUN git clone https://github.com/NVIDIA/apex.git \&&cd apex \&& python setup.py install --cuda_ext --cpp_ext#install PyTorch Detection

ARG FORCE_CUDA="1"ENV FORCE_CUDA=${FORCE_CUDA}

RUN mkdir workspace

WORKDIR/workspace

View Code

2)使用dockerfile生成一个新镜像,注意最后一个点

sudo docker build -t pc2mx_orig:v0.1 .

2、采用下载基本ubuntu镜像方式生成

三、安装Pycharm

四、配置docker环境

第一步:

新建目录:mkdir /etc/systemd/system/docker.service.d

新建文件:sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]

ExecStart=ExecStart= /usr/bin/dockerd -H tcp:0.0.0.0:2375 unix:///var/run/docker.sock

第二步:

刷新配置:sudo systemctl daemon-reload

重启docker守护进程:sudo systemctl restart docker

第三步:启动pycharm

目前pycharm 2020.3版本以上才支持docker配置

需使用sudo权限打开,否则会出现连接不上unix:///var/run/docker.sock的问题

sudo ./pycharm.sh

配置pycharm:

1)File-> Settings ->Build,Execution,Deployment->Docker;  Connect to Docker daemon with:选择unix socket

2)File->Settings-> Project-> Python Interpreter->Add ->Dokcer-> ImageName:选择镜像名

3)Run->Edit Configuration

配置Environment variables,Python InterpreterkWorking directory,Docker container settings.

第四步:运行pycharm程序

如果docker中安装了所有工程需要的包,就可以正常工作了。一般情况下,总会缺少一些包:)

问题1:

如果缺少相应包,如:ModuleNotFoundError: No module named 'scipy'

解决方法:

1.在docker环境中安装scipy: pip install scipy  (此时,直接运行pycharm程序还是会报错,因为新安装的配置不会立即更新)

2.   保存当前容器为新镜像,以免丢失新安装的配置:sudo docker commit -a "jimchen" CONTAINER_ID NEW_IMAGE_ID

更多docker使用方法见该链接:Docker常用操作

3.重新配置pycharm到该新镜像

pip install matplotlib, opencv-python,

问题2:

docker环境安装了cuda,但本地没有安装cuda

AssertionError:

Found no NVIDIA driver on your system. Please check that you

have an NVIDIA GPU and installed a driver from

http://www.nvidia.com/Download/index.aspx

解决方法:

pycharm-> Run/Debug configuration->Docker container settings

添加 --gpus all #使用docker中配置的cuda环境

-v local_dir(绝对路径):docker_dir(绝对路径)   #映射本地目录到docker目录

问题3:

数据集路径找不到,加载失败

解决方法:

pycharm-> Run/Debug configuration->Working directory

设置工作目录为映射到docker的目录:local_dir(绝对路径),并把数据集存放在当前目录

问题4:

共享内存不足:ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).

解决方法:

pycharm-> Run/Debug configuration->Docker container settings

添加配置项:--shm-size 8G(16G),设置多大视当前训练环境的硬件配置而定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值