VSCode+Docker建立Python开发环境
当使用Python进行开发的时候可能会遇到这样一种需求:在开发网站时需要一个Python开发环境,该环境需要特定版本的Python及依赖项;在数据科学开发时需要另一个环境,该环境需要另一个版本的Python及依赖项。这时,我们希望在同一台电脑上有两个互相独立,互不干扰的Python开发环境。第一种实现方式是pyenv+virtualenv,网上有许多文章可以参考,配置方法也比较简单。本文介绍利用Docker实现这一目的,其优点是开发的时候可以直接运行在Linux环境中,并且方便开发完成后的部署。
一、Docker的配置
(1)下载Docker
在Docker官网上下载Docker Desktop并安装。打开Docker Desktop并等待初始化完毕。
(2)下载镜像
在终端中运行如下命令
docker pull IMAGE:TAG
其中IMAGE为镜像名称,TAG一般为镜像的版本,比如下载Python3.6.10的镜像可运行以下命令。
docker pull Python:3.6.10
(3)启动容器
为了方便开发和调试,一般需要进行端口映射和挂载路径。
端口映射主要是希望能在本机访问虚拟环境的服务,比如在虚拟环境中,web开发需要在80端口进行调试,那么可以将本机8080端口映射到虚拟环境的80端口上,这样就可以通过127.0.0.1:8080访问虚拟环境的80端口服务了。其配置方法为:在启动容器时加入参数-p 8080:80,可以添加多个-p参数以达到多端口映射的目的。
挂载路径主要是方便文件共享,比如我们需要虚拟环境能够直接访问本机/User/Documents/Docker这个目录,那么我们可以将该目录挂载到虚拟环境中,比如挂载到/mnt/document上可以通过添加参数 -v /User/Documents/Docker:/mnt/document,同样可以添加多个-v参数以挂载多个目录。挂载完成后,虚拟机的/mnt/document目录和本机/User/Documents/Docker目录实际上为同一物理路径,所有操作都可以同步。
以下为启动容器的示范命令,详细可参阅Docker官方文档。
docker run -itd --name python-data -p 8080:80 -v /User/Documents/Docker:/mnt/document Python:3.6.10 /bin/bash
如果需要在启动Docker服务的时候自动启动该容器可以用以下命令:
docker update --restart=always python-data
如果后期需要修改端口映射或者挂载路径可以参考另一片文章:Docker修改容器的端口映射和挂载路径
(4)配置容器
启动容器后可使用以下命令进入容器的终端,对容器进行配置,比如用pip安装一些Lib。(注:推荐使用Dockerfile,本文不涉及该内容,请读者参阅其他资料)
docker attach python-data
二、VSCode配置
(1)下载VScode
在VSCode官网上下载VSCode并安装。
(2)安装插件
搜索并安装Docker插件和Remote Development扩展包。
(3)远程连接
通过右侧菜单栏进入Docker插件的页面,右击需要连接的容器(需要先启动容器),选择Attach Visual Studio Code即可进入开发环境。建议在挂载路径中进行开发,这样可以文件共享,很方便。