0、前言
每次运行开源代码的时候配置环境总是一件很头疼的事情,不同的代码常常需要不同的环境,配置完环境某些代码能够正常运行后,别的代码往往运行不了了。Docker提供了隔离运行环境的解决方案,可以使移植环境如移动文件夹一样简单。并且可以让不同的环境如同各个文件夹一样在一个系统中共存而互不干扰。另外,我们可以在DockerHub等社区找到大量开源image,直接利用别人配置环境的镜像使得环境配置轻松迅速。
pycharm是一款主流python编译器,功能丰富。
因此,为了结合Docker在配置环境方面的优势和PyCharm在显示、书写和调试代码方面的优势,我们考虑在本地利用PyCharm进行代码调试,在Docker的image环境中进行代码运行。
1、准备
1.1、下载PyCharm专业版并激活
可以通过学校邮箱申请免费licence
https://blog.csdn.net/qq_39521554/article/details/80855357
1.2、安装Docker和nvidia-docker,创建DockerHub账号
Docker:https://docs.docker.com/engine/installation/
nvidia-docker:https://github.com/NVIDIA/nvidia-docker
DockerHub:https://hub.docker.com/
2、Docker配置
2.1、开启Docker端口访问
step1:创建/etc/systemd/system/docker.service.d目录
sudo mkdir /etc/systemd/system/docker.service.d
step2:修改config文件
sudo gedit /etc/systemd/system/docker.service.d/http-proxy.conf
改成如下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H
unix:///var/run/docker.sock
step3:刷新daemon并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2.2、将环境打包为image
step1:登录DockerHub
docker login
step2:把容器变成本地镜像
docker commit containerId dockerUserName/XXX
containerId:容器名或容器ID
dockerUserName/XXX:DockerHub建立的仓库的名字
step3:为本地镜像打标签
docker tag imageName dockerUserName/xxx[:tag]
imageName:镜像名或镜像ID
dockerUserName/xxx:仓库名字
tag:标签名,缺省为latest
step4:将镜像上传到DockerHub
docker push dockerUserName/xxx[:tag]
3、PyCharm配置
3.1、使用Docker中的环境
step1:设置运行环境为Docker
Setting->Build,Execution,Deployment->Docker
step2:选择相应镜像
Setting->project->Project Interpreter
3.2、使用GPU
pycharm默认使用的是Docker而不是nvidia-docker,为了使用GPU,需要进行以下配置:
step1:修改配置文件
打开/etc/docker/daemon.json文件
sudo gedit /etc/docker/daemon.json
将内容修改为:
{
“default-runtime”: “nvidia”,
“runtimes”: {
“nvidia”: {
“path”: “nvidia-container-runtime”,
“runtimeArgs”: []
}
} }
step2:重启守护进程
sudo pkill -SIGHUP dockerd
4、总结
至此,可以愉快地用PyCharm在Docker的环境中编辑和调试代码啦。