docker连接wind10本地pycharm pro

发布时间:2023-10-09 15:00

docker连接wind10本地pycharm pro

问题

最近使用xemsf包库[xemsf]处理nc文件的气象数据,发现它没有Windows版本,只能在Linux和macOS平台使用,于是只能曲线救国,使用wind10自带的虚拟机安装docker,并在docker中安装miniconda,然后将docker连接到Pycharm Pro (version:2021.3)。docker可以看作是轻量级的虚拟机,它包含了你创建好的系统配置(包括各种应用),可以方便地分享而免去其他人再次配置环境的繁琐步骤,更多docker介绍请参考文章【1】。

方法

(1) 先激活wind10自带的虚拟机Hyper-v。

(2)下载docker desktop,注册docker账号,安装, 并按下图设置勾选红框项:
docker连接wind10本地pycharm pro_第1张图片

(3)pull一个现成的image–miniconda3并运行它的一个实例容器:

docker pull continuumio/miniconda3
docker run -i -t continuumio/miniconda3 /bin/bash

然后,在docker账号中创建自己的repository,如本人创建的为liangchangmao/wyj_1。在conda容器中创建新的虚拟Python环境,安装xemsf。接着打开新的命令终端,上传commit这个变更了的容器到自己的repository中成为一个新的image:

docker commit changed_container_id liangchangmao/wyj_1

PS:查看正在运行的容器可以得知容器的id:

docker ps -a -f status=running

然后仿照(3)运行这个更改后的image的一个实例容器

(4) 连接到专业版的pycharm(社区版的pycharm不支持docker)。
file–settings–Build, Excution, Deployment–Docker ,填写(2)中的docker参数:
docker连接wind10本地pycharm pro_第2张图片
然后,在运行容器的命令终端中查看Python路径:

which python

得到具体路径并填入pycharm中,如下图红框处:
docker连接wind10本地pycharm pro_第3张图片
此时即可成功连接docker的conda里的Python环境(需要保证docker desktop打开而不必进入image的容器container),若再conda环境中安装了新的包库则需要提交commit新的image到云端的repository,如下图所示dask不能成功导入:
docker连接wind10本地pycharm pro_第4张图片
提交commit新的image:
docker连接wind10本地pycharm pro_第5张图片
重新运行,成功导入dask:
docker连接wind10本地pycharm pro_第6张图片
(5)退出docker:

exit

或者直接组合键Ctrl+P+Q,最好不要直接关闭终端,否则再次启动docker容易出错。

补充

首次安装docker运行后发现电脑变卡,这是因为虚拟机进程vmmen占用了将近八成的电脑内存,故有必要重新设置虚拟机的内存分配,限制它的性能从而达到优化目的。参考博文【2】,先win+R输入%UserProfile%进入用户文件夹,创建一个文本文件输入一下内容:

[wsl2]
memory=4GB
swap=8GB
localhostForwarding=true

保存文件,并重命名为.wslconfig,并在命令行终端运行

wsl .wslconfig

重启docker即可。

参考

【1】了解docker基本概念:https://towardsdatascience.com/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5
【2】配置wind10虚拟机Linux的内存:https://www.cnblogs.com/q1359720840/p/14198460.html
【3】docker中的conda环境连接到pycharm:https://stackoverflow.com/questions/52049202/how-to-use-docker-and-conda-in-pycharm

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号