利用PyCharm+Docker搭建本地爬虫运行环境
本地环境:windows10
服务器:虚拟机环境centos7
docker版本:19.03.8
规范一下:
本地项目的路径:F:\Workspace\docker_works
服务器(虚拟机)项目的路径:/home/docker_works
docker容器的项目的路径:/opt/project
PyCharm中配置Docker环境
pycharm中新建一个docker配置
name:docker配置名称
TCP socket:tcp://ip:2375
路径映射:服务器(虚拟机)路径:本地路径
上面配置的tcp链接的ip是服务器(虚拟机)IP
但是,docker本身只允许自己的客户端去链接服务端,如果外部想要链接服务端,需要做相关配置。
打开或者新建daemon.json文件
vim /etc/docker/daemon.json
配置允许远端链接
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],# 换成你自己的加速,或者不要
"hosts": [
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
]
}
重启docker
service docker restart
如果重启失败,检查daemon.json配置是否有错误,要严格符合json规范。
也有可能是 docker 的 socket 配置hosts出现了冲突,配置host也能重启但是不生效。
解决方法:
vim /usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 注释掉上面,替换成下面这样
ExecStart=/usr/bin/dockerd
重启docker,期间可能要你reload一下。
systemctl reset-failed docker.service && systemctl restart docker
如果链接成功,会出现上图的connection successful,如果没有成功,检查一下是否防火墙没有放行2375端口。
一切正常的话,现在可以在pycharm中看到docker的镜像与容器。
PyCharm中利用Docker运行Python程序
docker pull好Python镜像(参考https://github.com/docker-library/docs)
pycharm中配置docker的Python解释器
如果现在在pycharm中运行代码,还是运行在本地,我们还需要做本地代码上传到远程服务器(虚拟机)。
配置SFTP
注意上面的路径映射,本地代码与远程代码要同步。
还有自动上传要勾选上,这样本地代码有改动就自动上传到服务器(虚拟机)。
这个时候可以测试一下,运行Python代码。
最后,还有两个配置,不想解释了,好累。。。
注意这些配置所有的路径映射要对应上。
最后
总结一下
1、配置Docker环境
2、配置daemon.json文件
3、配置docker的Python解释器
4、配置SFTP
5、做好路径映射
整个流程结束,我们可以在pycharm中管理远程docker,并且运行Python代码,这样代码会直接在docker容器中执行。一键到位。
还有如果本地是Dockerfile文件,那么可以直接右键运行。
如果本地是docker-compose.yaml文件,那么还是需要在服务器up运行。
最后的最后,Python也可以开启远程SSH,就在配置SFTP那边,tools–>start ssh session–>选择服务器
谢谢。