docker的安装与使用(Mac环境下)
来源:互联网 发布:纳什职业生涯场均数据 编辑:程序博客网 时间:2024/06/05 19:17
docker是一种虚拟技术。团队间的合作,如果不想被运行环境 or 各种依赖烦死的话,最明智的做法就是把依赖环境都装在docker里面,做好可移植,开发效率biu~biu~的。本篇将详细说明一下docker的各个方面,为以后做好整理。
一、为什么要用Docker?
说白了就是这几个原因:
- 为了快。 VMWare吃资源,每建立一个虚拟机就要建立一个os。给别人传的时候大小能达到G级的,太重。Docker各个镜像是共享资源的,资源利用率很高,containers是基于一个os上的。给别人传的时候是M级的,轻量。(官网有个对比图,这里就不放了,读者可自行查看)
- 为了复用。 有些项目,基本的依赖库都差不多,只是配置有变化(比如端口号不一样),这时候就只用把有变化的镜像打包出来,传给其他小伙伴,就可以复用了,效率很高
- 不再为环境烦恼。 在dokcer中配置好环境之后,可移植到别的环境中,直接就可以跑起来你的代码,不用自己再搭环境了。也解决了环境版本不一致的问题。
还有其他原因,这里不详述了。
二、安装前的准备
由于我们伟大的墙,我在安装过程中遇到了许多无(ling)力(ren)吐(fa)槽(zhi)的问题。版本迭代地很快,除了最新的版本,其他的都是历史,所以我们有必要了解一下都有什么改变了。
2.1 Mac系统要运行docker,必须要在10.8以上
查看你的版本号,记得及时更新~
2.2 关于 boot2docker
这东西要把我气死了,就是它一直卡我,卡了几天,一定要把这个说明白了!(敲黑板)
关于
boot2docker init
这个操作:
1.一般网上博客的套路就是叫你先装boot2docker:brew install boot2docker
;
2.然后再装docker:brew install docker
;
3.再配置环境变量:export DOCKER_HOST=tcp://127.0.0.1:4243
;
4.所有的都没毛病,嗯,就最后一步:boot2docker init
卡死我(手动微笑)关于
boot2docker init
的报错1:
由于伟大的墙,所以一直给你卡在Downloading image那块,如果要好的话,估计得等到一千年以后了
这里需要全局翻墙,由于最近风口浪尖&我懒不想搞,所以就尝试了别的方法。祝愿全局翻墙的宝宝成功哟~下面的成功截图,是我尝试的解决方法2&3之后,突然自己抽风给装好了,在这之前我下面的三种解决方法都不管用,如果你够欧,可能方法一就好了也不一定哈哈,毕竟这是个看脸的世界~
解决1:换成daocloud镜像试试(这里我没用这个方法,读者可自行百度)
解决2: 来来来,boot2docker镜像已就位!链接:http://pan.baidu.com/s/1o8Se7pC 密码:651v。当然你可以翻墙去github上面下载(别问我github为什么还要翻墙,你不翻墙下载试试,速度绝对“好“到让你哭)。下载后,放在~/.boot2docker这个目录下,再执行boot2docker init
解决3: 把前面第三步配置的环境变量删掉!这个老给我报错,我删掉之后就成功了,我也不知道什么原因= =。关于
boot2docker init
的报错2:
如果你已经保证~/.boot2docker目录下有boot2docker.iso这个文件,执行boot2docker init
,也许会报错:
error in run: Failed to initialize machine "boot2docker-vm": exit status 1
或者
error in run: Failed to initialize machine "boot2docker-vm": exit status 126
解决方法:请确定你的boot2docker.iso镜像文件下载完整。报这个错误就是镜像文件出问题了,不管在哪里,再重新下一个。
2.3 使用boot2docker启动docker
鉴于前面说了这么多,我还是把boot2docker启动docker的全过程走完:
务必保证收到成功信息后,执行eval "$(boot2docker shellinit)"
或者配置环境变量(vim ~/.bash_profile):
export DOCKER_HOST=tcp://192.168.59.103:2376 export DOCKER_CERT_PATH=/Users/skyamz/.boot2docker/certs/boot2docker-vm export DOCKER_TLS_VERIFY=1
这三个环境变量是我执行boot2docker up
时候的提示信息。配置好后,执行
boot2docker up
执行
boot2docker ssh
可以看到用户名都变成了docker。现在就是在docker的环境里面,我们可以执行关于docker的任何操作了~
2.4 总结
基于上面我在boot2docker处碰的壁,我决定不用那玩意启动docker了。今年是2017年,它早已经被docker ToolBox取代了(手动微笑)。这是我好不容易才知道的,因为在网上看博客,出来一大堆都是用boot2docker的,我装上了之后各种错误,也没人提= =所以下面我会直接用dockertoolbox来启动docker~
三、在Mac上安装docker
3.1 docker ToolBox镜像下载
http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/ 官网的速度太垃圾了,这个里面下载的速度可以。装了docker ToolBox,就等于装了:
- Docker Client docker binary —- docker 命令
- Docker Machine docker-machine binary —- docker-machine 命令
- Docker Compose docker-compose binary
- Kitematic - Desktop GUI for Docker
- Docker Quickstart Terminal app
我这个Mac总是不争气,运行Docker Quickstart Terminal app的时候会发生闪退,然后给我自动调item2,我就老起不起来docker。最后我点开了Kitematic,和Docker Quickstart Terminal app起的效果一样,都是建立一个default虚拟机。docker是基于linux的,所以mac和window用户需要建立一个虚拟的环境来跑docker,所以要建立一个default虚拟机。
3.2 安装VirtualBox
我是官网上下载安装包手动安装的,安装VirtualBox是为了看我现在有哪些虚拟机,可以对这些进行一个设置。下面的图片可以看到我现在有两个虚拟机default和boot2docker.vm。在docker中,一个虚拟机里面装一个application。
3.3 安装docker
官网上下载docker社区版(专业版没有mac版的)。下下来之后就进行安装。知道看到你的右上角有这个图标,就证明docker起起来了:
3.3 创建一个虚拟的环境,叫做bigdata。双核cpu,2G内存。这个过程需要花费时间,是时候先去喝杯咖啡了☕️~
docker-machine create --driver vituralbox --virtualbox-cpu-count 2 --virtualbox-memory 2048 bigdata
可能出现的错误:
3.3.1 注意windows用户如果这里报错:
\Driver "virtualbox" not found. Do you have the plugin binary accessible in your PATH?
可以试试给docker-machine后面加.exe(我没尝试过,这方法是看别人的博客上面写的)
docker-machine.exe create --driver vituralbox --virtualbox-cpu-count 2 --virtualbox-memory 2048 bigdata
3.3.2 一直卡在下载中
这里要全局翻墙下载,比较麻烦,所以我选择了手动下载boot2docker.iso并放入指定的/Users/skyamz/.docker/machine/cache/目录中。这个目录是上面图片里面的那个目录。注意这里要下的boot2docker.iso的版本号是v17.06.2-ce,如果版本号不对的话,可能识别不了
3.3.3 创建不了虚拟机
报如下错误:
断开网络然后再创建。如果卡在莫名其妙的一些地方,比如coping时,就control+c去中断,然后再重新创建。
这是成功的信息:
3.4 查看创建好的虚拟机
如果创建了虚拟机,要执行关于虚拟机的一系列操作,则要用docker-machine命令。
docker-machine ls #查看当前的虚拟机docker-machine rm bigdata #删除bigdata这个虚拟机docker-machine env bigdata1 #初始化bigdata1这个虚拟机eval "$(docker-machine env bigdata1)" #mac设置环境变量docker-machine env --shell cmd bigdata1 #windows设置环境变量
四、跑一个hello world
前面第三小节里面,是create了自己的一个容器,但是因为里面没有代码,跑不起来,也没法看到我们的整个流程是不是跑通了,所以我们现在运行一个hello world的容器,看看我们的整个流程。
docker run hello-world
五、总结
本篇是总结我安装过程中遇到的坑,能跑通一个镜像,就证明整个环境没有什么问题了,但是光会安装还是远远不够的,还可以有dockerfile等更加详细的关于docker的一些东西,我会继续深入~
memoryjdch编辑于2017.9.19
- docker的安装与使用(Mac环境下)
- mac 下使用Docker安装搭建tensorflow环境
- mac 下使用Docker安装搭建tensorflow环境
- mac 下使用Docker安装搭建tensorflow环境
- MAC下安装运行docker环境下的Griffin_demo
- [docker]Mac 下安装使用docker
- Mac osX环境下使用docker
- Ubuntu下Docker的安装与使用
- Mac OS X 下安装使用 Docker
- Mac OS X 下安装使用 Docker
- Mac OS X 下安装使用 Docker
- Windows环境下docker的安装与配置
- Mac平台上Docker安装与使用
- mac下安装docker
- mac下安装docker
- Mac下安装Docker
- Windows10下的docker安装与入门 (一)使用docker toolbox安装docker
- Windows10下的docker安装与入门 (一)使用docker toolbox安装docker
- android查看当前手机中的进程、优先级(命令)
- Spring Boot-配置devtools实现热部署
- python矩阵操作小例子
- 如何编写更好的SQL查询:终极指南-第一部分
- linux下PS1命令提示符
- docker的安装与使用(Mac环境下)
- 使用HTML语言和CSS开发商业站点_定位网页元素
- selenium 自动抢课——电子科大自动抢课脚本
- 1012. 数字分类 (20)
- Solr集群Replication配置与实践
- 记一次用alinode分析,降低cpu使用率
- Spring Boot中使用Swagger2构建API文档
- Netty4 HTTP请求参数解析(GET, POST)
- c#-- 使用Process类杀死进程,执行命令等