用前端姿势玩docker【五】快速构建中类Unix系统与Windows系统的差异化处理
目录
- 用前端姿势玩docker【一】Docker通俗理解常用功能汇总与操作埋坑
- 用前端姿势玩docker【二】dockerfile定制镜像初体验
- 用前端姿势玩docker【三】基于nvm的前端环境构建技巧
- 用前端姿势玩docker【四】基于docker快速构建webpack的开发与生产环境
- 用前端姿势玩docker【五】快速构建中类Unix系统与Windows系统的差异化处理
跨平台兼容性问题解决
前端开发工作中,主流的还是windows和mac,我们的目的是在windows和mac下能够尽可能地实现一致性。这个一致性体现在:
- docker的安装与初始化
- docker 容器的使用
- 开发中的各种操作过程
安装
Mac直接看官方文档
windows 上安装docker分为两种:
docker for windows 此方式要求windows系统必须能够启动 hyperV服务,而如果能够启动hyperV,基本上意味着都要是windows专业版,印象当中即便是家庭版也对版本有要求。
优点:方便,快捷
缺点:对系统有要求,不能做到任意机器均可使用
使用docker-toolbox通过docker-machine创建docker虚拟机 此方式通过使用 docker quickstart terminal快速创建docker虚拟机,然后通过docker-machine控制虚拟机,并在虚拟机中跑docker服务。
优点:门槛低
缺点:官方文档说明已经不建议使用此方法;配置较为复杂
总结
类Unix系统上,docker使用都很方便。关键是windows上需要斟酌考虑:
如果需要满足老旧的机器快速构建环境,不想去考虑各种系统类型(专业版、家庭版)、版本等问题。则建议使用docker-machine创建docker虚拟机的方法。
如果是在单一机器上使用docker,且长期固定使用同一台机器,那么docker for windows一定是最佳选择。 关于mac与windows启动便利性上,可以编写相应的.sh与.bat文件做启动文件。
windows docker-toolbox 安装docker问题汇总
- 无法使用私库:若配合镜像私库使用,则需要修改docker-toolbox下的sart.sh在docker-machine create那一行增加参数:
"${DOCKER_MACHINE}" create -d virtualbox --virtualbox-no-vtx-check $PROXY_ENV --engine-registry-mirror http://hub-mirror.c.163.com --engine-insecure-registry 私库域名或ip "${VM}"
进入docker容器后无法ping通外网
若可ping同域名,无法ping同ip:则需要添加dns,在
/var/lib/boot2docker/profile
文件中增加--dns=8.8.8.8
,注意此处有 = 号域名ip均无法ping通:在上文中同样的文件中添加bip配置
--bip 172.17.5.0/24
,注意此时无等号windows VirtualBox软链接错误: symlink(): Read-only file system
需要使用VBoxManage开启软连接功能,步骤如下:
-
关闭VirtualBox
- 为VirtualBox增加环境变量
- 启动软链功能:执行命令: VBoxManage.exe setextradata default VBoxInternal2/SharedFoldersEnableSymlinksCreate//mnt/project 1 其中default为虚拟机名称,/mnt/project 为启动软链功能的目录
- 查看是否启动成功: 执行命令:VBoxManage.exe getextradata default enumerate ,能看到存在以下内容即为开启成功:Key: VBoxInternal2/SharedFoldersEnableSymlinksCreate//mnt/project, Value: 1
windows中通过VirtualBox开启docker虚拟机,启动容器后,在容器内启动webpack-dev-server,外网无法访问:
docker-machine ssh
进入docker虚拟机后,ip addr
查看192网段的ip,并通过此ip加端口在宿主机访问即可。启动容器后,开启dev-server,修改代码后,宿主机浏览器无法热更新:
在VirtualBox中的文件系统下,webpack无法自动开启热更,需要手动添加watchOptions开启轮询:具体时间根据个人机器情况决定
watchOptions: { poll: 1500 }
- Spring Boot+JPA+Mysql+ThymeLeaf快速构建CURD系统(四)构建前端
- docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana
- 用前端姿势玩docker【三】基于nvm的前端环境构建技巧
- docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana
- [授权发表]基于 ssh + Xpra 构建 Docker 桌面系统
- Spring Boot+JPA+Mysql+ThymeLeaf快速构建CURD系统(二)搭建SpringBoot工程
- 在 Web 项目中使用 Redis 快速构建系统缓存(单机版/集群版)
- C或C++调用Windows系统函数 实现延时 或 获取当前时间的处理
- 推荐3款 Docker 认证的实用免费插件,帮助您快速构建云原生应用程序!
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③
- 快速构建Windows 8风格应用6-GridView数据控件
- Visual Studio 2010 上Windows项目包含本地系统必备组件发布失败处理方法
- 快速构建Windows 8风格应用20-MediaElement
- 快速构建Windows 8风格应用33-构建锁屏提醒
- 开启Windows 10上帝模式快速查找所有的系统设置
- Docker构建ELK Docker集群日志收集系统
- asp.net core后台系统登录的快速构建
- 在Windows中构建基于Docker的一致性开发环境
- Windows 10系统点击任务计划程序,提示找不到远程电脑如何处理
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像