Docker容器与Pycham搭配深度学习环境--基于Ubuntu
前言
本文参考相关文章Pycharm与Docker环境搭建
Pycharm与docker环境搭建
1. Docker端的配置
看前提醒:
有关docker的使用请参考Docker必备
深度学习推荐拉取镜像库Deepo
看前提醒:有任何疑问,可用$ docker help 解决
菜鸟教程-Docker的使用
镜像及容器的配置
1.首先拉取想要的环境的image,示例:
docker pull ufoym/deepo:tensorflow-py36-cu100
#输出结果
REPOSITORY TAG IMAGE ID CREATED SIZE
ufoym/deepo tensorflow-py36-cu100 c3778f9b53f0 14 months ago 4.94GB
2.拉取image成功后,可基于image(镜像)建立自己的container(容器).
参考格式:
#注意为对应的老板docker,新版docker可参考下面示例来
sudo nvidia-docker run -it -p [host_port]:[container_port](do not use 8888) --name:[container_name] [image_name] -v [container_path]:[host_path] /bin/bash
示例:
sudo docker run --gpus all -p 8888:22 --name tf2.0 -v /home/yannqi/A_qiqi_store:/workspace -it ufoym/deepo:tensorflow-py-cu100 /bin/bash
正确执行完之后,现在我们就处在新建的docker容器里了(端口映射,容器名,镜像和路径映射这些换成你自己的就行,但是一定要留一个端口映射到容器22端口,因为SFTP默认使用22端口)。
docker 容器内的配置
1.配置SSH服务
接着我们在刚刚新建的容器里配置SSH服务,首先安装openssh-server:
$ apt update
$ apt install -y openssh-server
之后进行密码设置:
root@dd53ea4c2f2b:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfu
使用命令vim /etc/ssh/sshd_config,修改下面两个配置
PermitRootLogin yes
UsePAM no
重启SSH激活配置:
$ service ssh restart
在服务器(宿主机)上(不是服务器的docker里)测试刚刚新建docker容器中哪个端口转发到了服务器的22端口:
$ sudo docker port [your_container_name] 22
示例:
sudo docker port 1ec3243fc339 22
#正确输出结果为
0.0.0.0:8888
到这里,docker容器中的ssh-server就已经全部配置成功了,下面我们将该容器提交为镜像,留在后面使用。
示例:
docker commit -a "yannqi" -m "tensorflow2" 91ff39e16730 tensorflow2.0:tf2.0
具体参数配置可以在Docker必备查看
之后再进入镜像,如下所示
sudo docker run --gpus all -p 8888:22 --name TensorFlow2 -v /home/yannqi/A_qiqi_store:/workspace -it tensorflow2.0:tf2.0 /bin/bash
重新进入镜像之后要进行密码设置:
root@dd53ea4c2f2b:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfu
之后重启SSH激活配置:
$ service ssh restart
一次挂载连接后,之后进入镜像只需要用下列方式进入即可:
docker exec -it [container ID] /bin/bash
可以看到容器内部文件夹有我们映射的worksapce,
容器外可以找到端口.
至此,docker端已经配置完成.接下来我们进入pycahrm端进行配置.
2. Pycharm端的使用
注意事项:
pycharm端一定要用专业版,社区免费版不支持docker
建立SFTP服务器
打开PyCharm>Tools > Deployment > Configuration, 新建一个SFTP服务器,名字自己取:
之后配置端口,如下图所示,密码为自己的密码:
配置完成后,点击auto detect,检测到路径:
到这里则第一步完成.
远程解释器的配置
点击PyCharm的File > Setting > Project > Project Interpreter右边的设置按钮新建一个项目的远程解释器:
进行SSH Interpreter的配置,如下图所示:
输入设定的密码后,注意我们的Python为Python3版本,则要在检测到的Python后加个数字3,如图所示:(不然会提醒找不到Python文件)
之后注意mapping的映射,及sync folders,映射到workspace内,即可.
映射成功后,至此就可以欢快的跑程序啦.
搞了好几天的pycharm结合docker,到此就全部结束了,如果有配置上遇到问题,可以发到评论区,大家看到的话会一起解决.
觉得有用不妨点个赞加个关注吧!