目录

跨平台兼容性问题解决

前端开发工作中,主流的还是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. 集训作业 洛谷P1010 幂次方

    这个…… 这个题看上去有点难的样子. 仔细看看,感觉有点简单.啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和. 然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续 ...

  2. dbca 建库报错 ORA-00600 解决办法

    [oracle@tim1 ~]$ dbca## An unexpected error has been detected by HotSpot Virtual Machine:## SIGSEGV ...

  3. python 列表的创建以及基本操作

    <python编程从入门到实践> 第三章 列表简介 用"[]"来建立列表,例如:letter = [a,b,c]; 用"[]"来提取列表元素,例如l ...

  4. 从LocalDateTime序列化探讨全局一致性序列化

    日拱一卒无有尽,功不唐捐终入海. 楔子 前两周发了三篇SpringSecurity和一篇征文,这周打算写点简单有用易上手的文章,换换脑子,休息一下. 今天要写的是这篇:从LocalDateTime序列 ...

  5. Spring Cloud Alibaba教程:Nacos

    Nacos是什么 Nacos 致力于帮助您发现.配置和管理微服务,它 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. 注册中心 nacos-server 可以 ...

  6. 借鉴一个比较标准的后端RESTful API

    我们制定的 API 规范,使用了微服务架构所以做了一些改进,我们更偏向使用 http code 标识,不然需要自己处理成功或失败的逻辑,在 200 内再包一层显得啰嗦:并且微服务系列都不支持,Feig ...

  7. Flutter获取远程数据 刷新UI界面

    import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; void main() => r ...

  8. C++与正则表达式入门

    什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 当你想要判断许多字符串是否符合某个特定格式:当你想在一大段文本中查找出所有的日期和时间:当你想要修改大量日志中所有的时间格式,在这些情 ...

  9. Nginx(一)Linux上的Nginx安装步骤

    一.Windows下安装 解压:nginx-windows 双击: nginx.exe 能看到nginx欢迎界面说明,nginx安装成功 演示下 nginx做静态服务器 二.Linux下安装 (1). ...

  10. Spring集成Quartz定时任务

    1.导入jar包 2.配置applicationContext.xml文件 <!-- 任务调度1 --> <!-- bean id="simpleJob" cla ...