目录

跨平台兼容性问题解决

前端开发工作中,主流的还是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. P.SDA1.DEV - 一个没有服务器的图床

    图床特色 P.SDA1.DEV的愿景是为大家提供一个免费.长期稳定外链分享图片的选择. P.SDA1.DEV的主要特点有: 完全建构在Serverless云服务上,致力于提供(墙外)可用性99.9%的 ...

  2. 猴子吃桃问题之《C语言经典案例分析》

    猴子吃桃问题之<C语言经典案例分析>一.[什么是猴子吃桃]       猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半 ...

  3. 不是吧,阿sir,2020年程序员要不好过?

    自从网传程序员到了35岁之后必须要转行,现在又有人传言:“疫情之下,程序员今年要过苦日子了,降薪裁员是大趋势.” 不是,我就不明白了,你们怎么就看不得程序员好呢?天天巴望着程序员降薪.转行.裁员…   ...

  4. Git Push提示没有权限

    中途协助别人开发的一个小项目, 我已经是该项目的Developer, 可是提交代码依然提示无权限 这是由于我是在master上直接提交的, 而GitLab默认是保护master分支的, push只对M ...

  5. java基础(一)注释

    注释的三方方式: 1.多行注释 /* 多行注释01 多行注释02 多行注释03 */

  6. Redis在Linux下的安装

    一.下载地址 ①redis中文网下载地址:http://www.redis.cn/ ②百度云网盘下载地址:https://pan.baidu.com/s/1UQcF9V3lwA0fxquM_JFMZw ...

  7. CSS 技巧一则 -- 不定宽溢出文本适配滚动

    在日常布局当中,肯定经常会遇到文本内容超过容器的情况.非常常见的一种解决方案是超出省略. 但是,有的时候,由于场景的限制,可能会出现在一些无法使用超出打点省略的方法的场景,譬如在导航栏中: 这种情况下 ...

  8. Alink漫谈(十五) :多层感知机 之 迭代优化

    Alink漫谈(十五) :多层感知机 之 迭代优化 目录 Alink漫谈(十五) :多层感知机 之 迭代优化 0x00 摘要 0x01 前文回顾 1.1 基本概念 1.2 误差反向传播算法 1.3 总 ...

  9. c++ 第二天 命名空间、数组

    C++ 命名空间 命名空间,也就是名称空间/名字空间,注意需要的头文件是 iostream ,而不是 iostream.h ,后者是旧版本的 C++ 头文件,并不支持命名空间. 为什么要使用命名空间? ...

  10. Python os.tmpfile() 方法

    概述 os.tmpfile() 方法用于返回一个打开的模式为(w+b)的临时文件对象,这文件对象没有文件夹入口,没有文件描述符,将会自动删除.高佣联盟 www.cgewang.com 语法 tmpfi ...