利用docker解决 windows开发环境 在webman部分服务异常的问题

226 阅读2分钟

前言

笔者纯新手,记录一些自己碰到的小问题和解决方式

先叠个甲,如果有什么不对的地方,欢迎大佬在评论区友好交流和指正~

正文:

webman在windows的 开发环境 下 偶尔会出现各种奇奇怪怪的BUG

例:webman-push 偶尔推送不了消息给客户端(亲测在linux环境下正常)

最近开始接触docker后 寻思docker在windows环境下类似于unix的虚拟机

那么我把webman的运行服务能不能跑在容器上把容器当虚拟机呢?

首先从网上下载了一个**[docker desktop]** 这个是docker官方可视化管理软件 (萌新不想敲命令的可用,大佬随意)

image.png 因为官方仓库 在国内正常途径 访问不了 于是从某面板的仓库下载了一个php的镜像到本地 输入以下指令将镜像导入到自己本地的docker

docker load -i image.tar

载入成功后,回到**[docker desktop]** 找到导入的镜像 RUN起来 image.png 这里我们还可以扩展写一些配置 分别是

  1. 容器的名字(随意)
  2. 映射端口(不填的话系统随机绑定 webman不依赖php fast-cgi 可以直接命令行运行 所以我们不用管)
  3. 挂载卷(可以把本地的项目挂载到容器内的目录)
  4. 环境变量

image.png

我们这里把我们webman项目的根目录挂载到容器内的/www 然后 直接RUN

image.png

回到容器,可以发现我们的linux php环境搭建好了

image.png

点击容器展开实例 点击选项(三个点) 找到 打开命令行

image.png

这下进入了我们的带有php环境的linux虚拟机里

image.png

找到我们之前挂载项目的目录 然后直接开始跑服务

image.png

恭喜!服务跑起来了 不过这个时候不要急 因为我们镜像默认的网络与本机是Host的桥接方式 我们这个时候不能通过127.0.0.1的方式访问到项目 这个时候我们需要查询一下windos本机的网络 打开 命令行(运行->CMD) 执行下面的命令

ipconfig

image.png

最下面这种以太网网关 就是我们桥接了容器的ip 所以我们如果想访问容器的开放的端口 需要这样访问 192.168.10.197 也就是以太网的IPV4地址 在拼接上我们服务的端口号 192.168.10.197:8787

image.png

大功告成~