MAC OSX--docker
http://www.cnblogs.com/yjmyzz/p/docker-install-tutorial.html
http://www.cnblogs.com/yjmyzz/p/docker-usage.html
三个大坑:
其一:
-v 参数可以只写前面第一部分,-v /Users/yjmyzz/docker_volumn 这样启动也不会报错,但是这样做的效果,在最新版本的docker(1.9.1)上,只会把本机目录挂到容器中,容器中看不到本机的任何文件,所以一定要记得写:后的部分
其二:
权限问题,mac机上如果从网上down(非apple store官方)了一个文件到本机,该文件甚至保存文件的目录权限,都会被设置成特殊权限@,见下面的截图:
ll -l@ -a |
先用这个显示特殊权限的详细信息:
然后用xattr -r -d 详细信息 * 去掉这些特殊权限(参考下图),然后再重新挂到容器中,就能正常使用了
其三:
mac上挂载的本机目录,必须是在~/(即:当前用户的目录)下,类似/opt/www这样的目录,就算给它所有权限,挂到容器中后,也只能看到目录,读不到任何文件,centOS上没这问题。
此外,还可以用命令
|
1
|
docker inspect myubuntu |
查看此时容器的所有状态,会看到一段长长的json输出,类似下面这样:
90~97行的Mounts节点描述了当前容器挂载的"卷"信息。
最后指出一点:目前docker仅支持在run(创建)容器时使用-v创建卷,对于一个已经start的容器,如果想动态添加卷,是十分困难的。虽然国外有牛人,实现了在容器启动后动态添加卷,但过程十分曲折,而且并不能能用,有兴趣的可以参考下面的文章
如果直接在mac本机打开一个终端,然后输入docker ps之类的命令,会提示
|
1
|
Cannot connect to the Docker daemon. Is the docker daemon running on this host? |
eval $(docker-machine env default)
docker exec -it hello-world-nginx sh这一节我们来稍微了解下docker原理性的东西
|
1
|
docker run -i -t ubuntu /bin/bash |
输入上面这行命令,启动一个ubuntu容器时,到底发生了什么?
大致过程可以用下图描述:

首先系统要有一个docker daemon的后台进程在运行,当刚才这行命令敲下时,
1. docker client(即:docker终端命令行)会调用docker daemon请求启动一个容器,
2. docker daemon会向host os(即:linux)请求创建容器
3. linux会创建一个空的容器(可以简单理解为:一个未安装操作系统的裸机,只有虚拟出来的CPU、内存等硬件资源)
4. docker daemon请检查本机是否存在docker镜像文件(可以简单理解为操作系统安装光盘),如果有,则加载到容器中(即:光盘插入裸机,准备安装操作系统)
5. 将镜像文件加载到容器中(即:裸机上安装好了操作系统,不再是裸机状态)
最后,我们就得到了一个ubuntu的虚拟机,然后就可以进行各种操作了。
如果在第4步检查本机镜像文件时,发现文件不存在,则会到默认的docker镜像注册机构(即:docker hub网站)去联网下载,下载回来后,再进行装载到容器的动作,即下图所示

另外官网有一张图也很形象的描述了这个过程:

参考文章:
MAC OSX--docker的更多相关文章
- MAC OSX Docker安装教程2018
1.首先打开Docker商店 Docker商店地址:https://store.docker.com/editions/community/docker-ce-desktop-mac 2.打开后界面如 ...
- 在Mac OSX系统的Docker机上启用Docker远程API功能
在Mac OSX系统的Docker机上启用Docker远程API功能 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs D ...
- mac osx下django-admin.py出现的问题
mac osx 下面用django-admin.py创建项目的时候,没创建成功出现django-admin.py编辑文件,这主要的原因是mac osx下面django-admin.py被重命名为dja ...
- mac osx 上面部署Django项目 apache+mysql+mod_wsgi
1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...
- Webstorm 10 for mac osx 注册机,序列号,kegen
小菜最近get到mac体验机会,早就耳闻mac非常适合做开发,于是迫不及待的安装各种开发工具,不知不觉,轮到前端开发神器webstorm了,看了一下官网的价格,心拔凉拔凉的. 果断搜索注册机,搜到的结 ...
- Mac OSX网络诊断命令
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 下面是一些Mac OSX下常用的网络诊断命令.它们能帮助我们发现网络问题.文中提到 ...
- Mac OSX上的软件包管理工具,brew 即 Homebrew
brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...
- Install Ansible on Mac OSX
from: https://devopsu.com/guides/ansible-mac-osx.html and : https://devopsu.com/guides/ansible-post- ...
- 更新Mac OSX XCode后Git 不能使用提示Can't start Git: /usr/bin/git
更新Mac OSX XCode后Git 不能使用提示Can't start Git: /usr/bin/git 解决办法: 终端运行 sudo xcodebuild -license 同意协议就好了.
- Mac OSX下卸载Nodejs
有时手贱看到新版本就升级,升级后发现一堆模块不能用了,心情好慢慢调,但也有调不好的时候,只能卸载重装低版本的node了. 我的机器环境如下 1. Mac OSX 10.10.3 2. node为0.1 ...
随机推荐
- atitit.php中的dwr 设计模式
atitit.php中的dwr 设计模式 1. dwr的优点相对于ajax来说.. 1 2. DWR工作原理 1 3. php的dwr实现 1 4. 参考 3 1. dwr的优点相对于ajax来说.. ...
- unittest最详细的解说
转自:http://www.imooc.com/article/257230 一.什么是unittest unittest是Python单元测试框架,类似于JUnit框架. unittest中有4个重 ...
- QT界面 理解QStyle和QStyleOption以及QStyleFactory
QStyleOption类和QStyle类简介 QStyleOption类存储QStyle函数使用的参数.QStyleOption及其子类包含了QStyle函数绘制图形元素所需的所有信息. 由于性能原 ...
- tomcat能启动正常,但是输入localhost:8080不能登录
怎么配置JDK和TOMCAT应该百度经验已经很好地解释了. tomcat启动成功了,但是 localhost:8080 登录不成功. 有一种可能,缺少http:// 输入: http://loca ...
- url参数
两个参数情况: String url="http://59.78.93.208:9097/Order?id="+id+"&value="+value; ...
- Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装) [转]
说明: 我是用root用户在终端登陆的,如果是非root用户,那在命令前需要加上"sudo",你懂的... 第一步:在Ubuntu下安装Postgresql ...
- 数据库设计(七)第三范式(3NF)
In our last tutorial, we learned about the second normal form and even normalized our Score table in ...
- 详解C#中通过委托来实现回调函数功能的方法
委托:类型安全的指向函数的指针 使用步骤 1:声明一个委托 delegate string DelString(string s) 2:定义一个委托变量 DelString del = new Del ...
- MapReduce实战(七)GroupingComparator
需求: Order_0000001,Pdt_01,222.8Order_0000001,Pdt_05,25.8Order_0000002,Pdt_05,325.8Order_0000002,Pdt_0 ...
- Intellij IDEA和EclipsE之间的的全面对比
两个IDE之中我最常用的快捷键: 描述 Eclipse IntelliJ 代码补全 Ctrl+space ctrl+space 打开类或者接口 (两个IDE都支持使用"驼峰字符"前 ...