目录
一、前言
直奔主题:
- 我们都知道Windows系统要想使用Docker,就必须安装Docker for windows,但安装 DFW(简写) 又必须开启Hyper-V虚拟化功能,那么问题来了?
Win10专业版
是直接可以开启Hyper-V功能的,但是Win10家庭版
是没有Hyper-V功能的;- 网上虽然有大把开启Hyper-V虚拟化的教程,但是总的来说Hyper-V
兼容性太差
;- 我们做开发难免有时会用VMware虚拟机,此时就会碰到各种兼容性的问题,最后饶了一大圈,问题也不一定能得到解决 !
重点来啦!!!- 今天我们就一起来另辟蹊径,教大家怎样用
Vmware虚拟机
替代Hyper-V
,来实现 Docker 容器管理;
并实现《在 Win10 中用 Pycharm 连接 VMware 虚拟机中的 Docker 镜像中的 Python 解释器进行开发》
好文章 记得收藏+点赞+关注额 !!!---- Nick.Peng
二、开发环境准备
-
本教程环境如下:
- 安装 VMware 的 Win10 家庭版电脑一台
- 在 VMware 中安装 Ubuntu16 或 CentOS
- 在 Ubuntu 中安装 Docker
- 在 Docker 拉取我们开发用到的应用镜像,本文以 Django 应用镜像为例讲解
以上环境准备不再讲解安装方法,都是一些最基本的,没有什么难度。。。
三、前提条件准备
- 3.1 虚拟机网络模式改成
NAT 模式
,如下
IP地址最好配成固定的,进入虚拟机,找到 设置>网络,进行手动配置;
- 3.2 虚拟机 Ubuntu 必须要关闭防火墙,方法如下:
- 设置开机禁止启动: 输入命令
sudo ufw disable
回车即可,CentOS设置方法稍有区别,可百度; - 停止当前防火墙服务: 输入命令
sudo service ufw stop
回车即可; - 验证防火墙服务状态: 命令
service ufw status
;
- 设置开机禁止启动: 输入命令
- 3.3 虚拟机中的 Docker 开启对外开放端口,方法如下:
- 进入到 /lib/systemd/system/docker.service 目录下
输入命令vim /lib/systemd/system/docker.service
,对 docker 配置文件进行编辑; - 找到 ExecStart 这一项,添加
-H tcp://0.0.0.0:2375
配置,如下
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
; - 重载守护进程:输入
systemctl daemon-reload
回车; - 重启 Docker 服务:输入
sudo service docker restart
回车; - 用浏览器访问查看是否成功,如下操作:
浏览器能正常返回容器JSON信息代表成功;其中192.168.232.128 指的是虚拟机IP,2375是我们上面开放的端口号;
- 同时,我们在虚拟机中用命令
service docker status
查看Docker运行状态,也能看出修改成功,如图:
- 进入到 /lib/systemd/system/docker.service 目录下
- 3.4 创建Windows与VMware项目共享目录
- 打开终端,
cd ~
到家目录下 - 创建项目目录,
mkdir docker_proj
,此目录作为Pycharm连接Vmware虚拟机Docker的映射目录
- 打开终端,
四、Pycharm连接VM的Docker
- 用 Pycharm 打开桌面上的项目,依次点击 File>Settings>Build,Execution>Docker,按以下说明进行配置;
五、连接并设置Docker镜像中的Python解释器
- 在 Pycharm中,依次点击 File>Settings>Project:xxx>Project Interpreter,按以下说明进行配置;
1>. 按如图说明进行配置后,点击OK,Pycharm 就会自动识别 Docker 镜像中的 python 解释器了,过程稍微有点长,请耐心等待。。。
2>. 识别成功后,就会在 Project Interpreter 窗口,显示我们虚拟机中 Docker 镜像中的 Python 解释器了,如图所示:
六、配置Windows项目代码自动同步至虚拟机
- 在 Pycharm中,依次点击 Tool>Deployment>Configuration,会弹出 Deployment 部署配置窗口,见下面第二张图;
- 在Deployment 部署配置窗口中,先对 Connection 做以下配置
1>. 点击+号: 选择 SFTP,在弹窗中给随便起一个名字;
2>. Host: 填写虚拟机的IP地址,端口默认22不变;
3>. User name: 填写虚拟机的账户名;
4>. Password: 填写虚拟机对应账户的密码;
5>. 点击Test Connection: 测试一下,成功的话,会提示 successful;如图所示:
- 在Deployment 部署配置窗口中,再对 Mappings 做以下配置
1>. 配置Local path: 填写我们 Windows 项目所在的绝对路径;
2>. 配置Deployment path: 填写我们 VM 虚拟机项目所在的绝对路径;
3>. 注意: 这里的路径必须是我们项目更目录所在的绝对路径(实现了 VM 虚拟机目录与 Windows 项目目录之间的映射),这里的配置决定了你是否能成功运行项目的关键,这一点根上面链接 Docker 配置有点不一样;
4>. 配置自动上传: 依次点击 Tool> Deployment>Automatic Upload(always),勾选 Automatic Upload 后,我们在 windows 中修改代码后,就会立即上传到虚拟机中
七、项目运行配置以及容器启动目录映射
- 在 Pycharm 界面右上角,依次点击 运行按钮的下三角>Edit Configuration,会弹出 Run/Debug Configuration 配置窗口,如下图;
1>. 配置Host: 设置为 4 个 0 ;
2>. 配置Port: Port设置成项目启动的端口,只要没有被占用就行,Django默认端口8000;
3>. 配置容器创建目录映射: 点击文件夹图标,弹出右侧 Docker container settings;
这里的-v
选项指的就是项目启动时,对创建的 Docker 容器进行项目目录映射;
4>. 配置Container path:-v
的第二个参数,指 Docker 容器中,项目根目录所在绝对路径;
5>. 配置Host path:-v
的第一个参数,指 Windows 中项目根目录,所在的绝对路径;
6>. 点击OK保存配置: OK 后会自动转换成,Docker 容器项目路径到虚拟机项目路径的映射,因为我们在上一步已对 Windows 目录和虚拟机目录进行映射;
八、成功运行我们的项目
- 刚配置好环境,第一次运行项目前,记得将我们的项目手动复制到虚拟机一份( 即这里的
/home/python/docker_proj
下 ),后续修改会自动上传; - 注意:
如果windows在不手动添加路由的情况下,我们访问项目时,一定要用虚拟机的 IP + 端口,即这里的http://192.168.232.128:8003
;
小贴士:用宿主机的 IP:Port 访问项目配置方法,请点击!
至此完整配置教程结束 。。。看了本教程的朋友,如果还有配置不成功的,可以私信我远程协助 。。。
最后,别忘了收藏+点赞+关注额 !!!