目录

跨平台兼容性问题解决

前端开发工作中,主流的还是windows和mac,我们的目的是在windows和mac下能够尽可能地实现一致性。这个一致性体现在:

  1. docker的安装与初始化
  2. docker 容器的使用
  3. 开发中的各种操作过程

安装

  • Mac直接看官方文档

  • windows 上安装docker分为两种:

  1. docker for windows

    此方式要求windows系统必须能够启动 hyperV服务,而如果能够启动hyperV,基本上意味着都要是windows专业版,印象当中即便是家庭版也对版本有要求。

    优点:方便,快捷

    缺点:对系统有要求,不能做到任意机器均可使用

  2. 使用docker-toolbox通过docker-machine创建docker虚拟机

    此方式通过使用 docker quickstart terminal快速创建docker虚拟机,然后通过docker-machine控制虚拟机,并在虚拟机中跑docker服务。

    优点:门槛低

    缺点:官方文档说明已经不建议使用此方法;配置较为复杂

总结

类Unix系统上,docker使用都很方便。关键是windows上需要斟酌考虑:

  1. 如果需要满足老旧的机器快速构建环境,不想去考虑各种系统类型(专业版、家庭版)、版本等问题。则建议使用docker-machine创建docker虚拟机的方法。

  2. 如果是在单一机器上使用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开启软连接功能,步骤如下:

    1. 关闭VirtualBox
    2. 为VirtualBox增加环境变量
    3. 启动软链功能:执行命令: VBoxManage.exe setextradata default VBoxInternal2/SharedFoldersEnableSymlinksCreate//mnt/project 1 其中default为虚拟机名称,/mnt/project 为启动软链功能的目录
    4. 查看是否启动成功: 执行命令: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
    }

用前端姿势玩docker【五】快速构建中类Unix系统与Windows系统的差异化处理的更多相关文章

  1. 用前端姿势玩docker【四】基于docker快速构建webpack的开发与生产环境

    目录 用前端姿势玩docker[一]Docker通俗理解常用功能汇总与操作埋坑 用前端姿势玩docker[二]dockerfile定制镜像初体验 用前端姿势玩docker[三]基于nvm的前端环境构建 ...

  2. 用前端姿势玩docker【一】Docker通俗理解常用功能汇总与操作埋坑

    前言 首先一句话表达个人对docker的理解:与传统虚拟技术基于硬件及物理资源的虚拟化相比,Docker更加轻量化,docker为基于操作系统或内核级别的虚拟化,并且提供了从各种机制与操作以满足从开发 ...

  3. 用前端姿势玩docker【二】dockerfile定制镜像初体验

    前言 书接上文,关于dockerfile指令的api在此处不做赘述,在此只是记录下注意事项: '示坑以埋之'. 配置指令 FROM dockerfile必须以此开头 一个dockerfile可执行添加 ...

  4. 用前端姿势玩docker【三】基于nvm的前端环境构建技巧

    前言 安装docker啥的就不说了,这里重点强调一下,docker的环境问题.本人的环境: 虚拟机centos => docker => NAT => container 因为需要不 ...

  5. docker&flask快速构建服务接口(二)

    系列其他内容 docker快速创建轻量级的可移植的容器✓ docker&flask快速构建服务接口✓ docker&uwsgi高性能WSGI服务器生产部署必备 docker&g ...

  6. [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境

    快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...

  7. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  8. UIkit – 轻量级前端框架,帮助你快速构建 Web 界面

    UIKit 是一个轻量级,模块化的前端框架,用于构建快速和强大的 Web 界面.UIKit 为您提供了 HTML,CSS 和 JavaScirpt 组件,使用简单,容易定制和扩展.UIKit 基于 L ...

  9. 玩转Windows服务系列——使用Boost.Application快速构建Windows服务

    玩转Windows服务系列——创建Windows服务一文中,介绍了如何快速使用VS构建一个Windows服务.Debug.Release版本的注册和卸载,及其原理和服务运行.停止流程浅析分别介绍了Wi ...

随机推荐

  1. 关于git,无论是命令使用还是深入学习,看我总结就够了

    周五了,又是划水的一下午,无意中在某号上发现了这样一张图,说的内容很简单,就是我们日常离不开的git,可能因为最近github宕机,网传服务器被盗的新闻把,让我瞬间产生了兴趣,就点进去看一下 大家能看 ...

  2. PyQt5事件处理

    事件介绍 事件的处理机制非常的复杂,属于PyQt底层的事,不必我们关心,学会使用就行.如果说事件是用来创建窗口,那么信号与槽就是用来对这个控件进行处理.事件属于低级的处理方式,信号与槽是高级的处理方式 ...

  3. idea中maven导入依赖报红的解决办法

    使用idea创建maven项目,maven导入依赖报红,从以下几个步骤排查解决问题: 1.首先查看maven的安装和配置有没有问题.那么,要看那些内容呢.maven的安装位置.maven的settin ...

  4. .net core 发布程序命令(自带运行环境)

    dotnet publish -c Release -r linux-x64 --self-contained true

  5. python 中文乱码 list 乱码处理

    list 乱码 data_list = ["中文"] print str(data_list).decode("string_escape") mysql 获取 ...

  6. git pull & git fetch

    Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge   git fetch origin mastergit log ...

  7. 小书MybatisPlus第7篇-代码生成器的原理精讲及使用方法

    本文是本系列文章的第七篇,前6篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小书Mybatis ...

  8. 正在找工作的同学看过来,zozo最新的java面试题总会,学会月薪3万起!!!

    引言 为正在找工作的同学提供些许帮助,话不多说直接上题. 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! 关注后私信我[资料]即可免费获取! ...

  9. 关于SignalR 进行双向多步对话

    关于ASP.NET SignalR 解释百度百科是这样说的: ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 ...

  10. servlet执行

    WEB编程阶段 在WEB编程中,我们可以通过浏览器访问WEB服务器上的资源.WEB服务器就是另一台计算机 浏览器的入口不同(访问路径),访问的资源也不同. 为了灵活实现的不同路径(/hello)执行不 ...