MacOS安装Docker的过程及遇到的坑
有幸参与Skeleton项目,虽然我做的工作只是把bat脚本改写为shell脚本,以便支持项目在Mac/Linux环境下自动部署到Docker上的功能。一遍操作走下来,发现Docker是一个相当cool的项目。好了,收回题外话,这里把Mac安装Docker的过程及遇到的一些坑记录下来,方便后面的同学避开雷区。
前言
首先提供需要的原材料:
- Docker官网,您可能需要翻墙来访问
- MacOS 10.X系统。
下载Docker
直接进入Docker官网,下载DMG安装包,云云。
安装完之后启动,不出意外应该会报以下错误:
Docker does not rely on Virtualbox but may not work properly on systems with VirtualBox versions prior to v4.3.30 VirtualBox v4.3.28 is currently installed. Please upgrade or uninstall Virtualbox.
如果您的Docker没有报上述错误,那么请无视接下来的一段。
问题解决
我是参考docker官方的一段issue来解决的:
首先检查一下本地环境的kextstat:
输入命令
kextstat | grep -i virtualbox
我本地的结果是:
如果有信息反馈,那么执行第二步。
cd /Library/Application\ Support/VirtualBox/
执行ls后,不出意外,应该长这个样子:
在该目录下执行:
rm -rf *.kext
清空kext文件后,我们再执行一遍
kextstat | grep -i virtualbox
这个时候,应该不会有任何信息显示出来,那么我们重启一遍电脑,再运行docker应该就不会报错了。
下载Kitematic
当Docker运行起来之后,我们还需要安装Kitematic才可以愉快的跟docker做朋友:
安装步骤很简单,在docker的icon点一下,在出来的下拉框里选择Kitematic就可以了,之后的安装步骤略。
测试
我这里使用的是Skeleton来测试的,因为这个项目有一键部署到docker上的脚本“install-docker.sh”,运行这个脚本后,docker上就能够看到我们新部署上的Skeleton项目,截图如下:
总结
以上所述是小编给大家介绍的MacOS安装Docker的过程及遇到的坑 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 《笨办法学Python》 第42课手记
- 使用ES6新特性开发微信小程序(1)
- 《笨办法学Python》 第41课手记
- 生信宝典之傻瓜式 (五) - 文献挖掘查找指定基因调控网络
- linux学习第一篇:网络配置
- 使用ES6新特性开发微信小程序(2)
- Android权限机制,你真的了解吗?
- Window环境下搭建Vue.js开发环境
- ios开发之xcode环境介绍
- CIRCOS增加热图、点图、线图和区块属性
- github pages + Hexo + 域名绑定搭建个人博客
- 使用ES6新特性开发微信小程序(3)——类
- linux学习第四篇:克隆虚拟机以及两台linux机器相互登录
- 前端开发的工具化与工程化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL优化--概述以及索引优化分析
- MySQL优化--查询分析工具以及各种锁
- MySQL优化--MVCC
- Linux入门--基础命令
- Linux入门--权限管理、任务调度、磁盘管理
- 【Rust日报】2020-08-05 -- 如何在2020年进一步加快 Rust 编译器的速度
- Linux学习--网络、进程、服务、软件管理
- IOS label 设置行高
- 重学数据结构(序:概览)
- 【Rust日报】2020-08-06 使用 Rust 编写的 Lambdas 在 AWS IoT 和 SQS 队列之间传递消息
- react-router-config的使用
- Spring 源码解读第七弹!bean 标签的解析
- Kubeflow实战: 入门介绍与部署实践
- matplotlib基础绘图命令之violinplot
- 性能分析(3)- 短时进程导致用户 CPU 使用率过高案例