注意: 该 Docker 版本为了支持 Docker 机,于是不再支持 Boot2Docker 命令行。使用 Docker Toolbox 和其它 Docker 工具来安装 Docker 机。
您可以利用 Docker Toolbox 来安装 Docker。Docker Toolbox 提供了以下工具:
- 用于运行 docker-machine 二进制文件的
Docker Machine
- 用于运行 docker 二进行文件的
Docker Engine
- 用于运行 docker-compose 二进行文件的
Docker Compose (Mac 特有)
- Kitematic,Docker 的图形用户界面
- 用于 Docker 命令行环且预先配置好的 shell
- Oracle VM VirtualBox
由于 Docker 的后台程序使用了 Linux 特有的内核特性,所以您不能直接在 OS X 上运行 Docker。相反,您必须使用 docker-machine
来创建并附加一台虚拟机(VM)。该虚拟机需要安装 Linux 操作系统以便在您 Mac 机上运行 Docker。
前提条件
您 Mac 机的 OS X 版本必须大于等于 10.8 "Snow Leopard" 才可以安装 Docker Toolbox。
在安装之前先来了解一些关键概念
当我们在一台 Linux 主机上安装完 Docker 之后,我们的机器中就包含了本地主机和 Docker 主机。如果从网络层来划分,本地主机就代表你的电脑,而 Docker 主机就是运行 container 的那台机器。
在 Linux 机器上的一种典型安装 Docker 方法:Docker 客户端,Docker 后台程序和 container 会直接运行在您的机器上。这就意味着您可以使用标准的本地主机寻址(例如 localhost:8000
或者 0.0.0.0:8376
)来为 Docker container 分配一个地址。
在 OS X 上安装的 Docker ,其 Docker 后台程序是运行在一个名为 default
的 Linux 虚拟机上的。default
是 Linux 上的一个轻量级的虚拟机,是专门用于在 Mac OS X 机器上运行 Docker 的。
在 OS X 中,Docker 主机地址就是 Linux 虚拟机的地址。当你使用 docker-machine
启动虚拟机的时候,该虚拟机会自动获取到 IP 地址。当您开启一个 container 的时候,container 上的端口会映射到虚拟机的端口上。本页面上的实践操作会一一印证上述内容。
第一步:安装docker Toolbox
https://github.com/docker/toolbox/releases/tag/v1.12.2
-
进入 Docker Toolbox 页面。
-
点击 Docker Toolbox 下载链接,进行下载。
-
双击安装包或者通过右击并在快捷菜单中选择“打开”的方式安装 Docker Toolbox。
此时会弹出“Install Docker Toolbox”(安装 Docker 工具箱)窗口。
-
点击“继续”(Continue),安装 toolbox。
此时,toolbox 会展现给你一些选项,供您自定义标准安装。
默认情况下,标准的 Docker Toolbox 安装是这样的:
通过点击“自定义”或“更改安装目录”修改这些默认安装值。 -
- 向
/usr/local/bin
目录中添加 Docker 工具的二进制文件。 - 修改权限使得这些二进制文件可供任何用户使用。
- 更新现有的 VirtualBox 安装。
- 向
-
点击“安装”,执行标准安装。
系统提示您输入密码。
-
输入密码,继续安装
安装完成后,Docker Toolbox 会为您提供一些信息,通过这些信息您可以完成一些常见的任务。
-
点击“关闭”,离开当前窗口。
安装完成之后 会有两个虚拟机管理virturabox工具,docker的信息,docker则被写入到usr/bin下
eval "$(docker-machine env default)”
启动虚拟机,运转docker
使用
docker-machine
命令与该台要被迁移的虚拟机进行交互。docker-machine
的子命令和boot2docker
的子命令比起来还是有一些不同之处的。下面这个表列出了对比了二者的不同并介绍其功能。boot2docker
docker-machine
docker-machine
descriptioninit create Creates a new docker host. up start Starts a stopped machine. ssh ssh Runs a command or interactive ssh session on the machine. save - Not applicable. down stop Stops a running machine. poweroff stop Stops a running machine. reset restart Restarts a running machine. config inspect Prints machine configuration details. status ls Lists all machines and their status. info inspect Displays a machine's details. ip ip Displays the machine's ip address. shellinit env Displays shell commands needed to configure your shell to interact with a machine. delete rm Removes a machine. download - Not applicable. upgrade upgrade Upgrades a machine's Docker client to the latest stable release.
在终端中输入:docker-machine ls 查看docker在mac上的运行实例
该台处于 ACTIVE
状态的虚拟机,即本例中的 default 虚拟机,就是您的环境所指向的虚拟机。
docker运行相关命令:
docker run 启动
docker run -d 后台运行
一般来说,docker run
命令会开启一个 container,并运行它,最后关闭它。加上 -d
这个参数,container 就可以在您执行了 docker run
这条命令后继续在后台运行了。加上 -P
这个参数就可以将 container 监听的那个端口告知给 Docker Host;这样您就可以在您的 Mac 机上访问 container 了。
docker 下载nginx镜像文件
docker search nginx #搜索nginx
docker pull nginx #拉取nginx
完成之后,运行 docker ps 查看是否有docker容器再跑(显示无):
查看nginx下载是否完成
docker images 列出当前镜像
启动一个nginx容器
docker run -d -P —name web nginx
查看container的端口:
docker port web
并没有生效,其原因就是 DOCKER_HOST
的地址并不是你本地的机器的地址(0.0.0.0),而是您的 Docker 虚拟机的地址。
获取docker虚拟机地址:
docker-machine ip default
停止一个容器
docker stop web
删除容器 docker rm web
创建一个挂载点 cd $HOME
创建一个文件夹
mkdir dockerSite
cd dockerSite
docker run -d -P -v $HOME/dockerSite:/usr/share/nginx/html --name mysite nginx
docker port mystite
echo 'i am go home' > home.html
停止当前容器
docker stop mystie
docker rm mystie
-
删除(列出的)每一台虚拟机.
$ docker-machine rm dev Successfully removed dev
删除一台虚拟机,意味着从
VirtualBox
和~/.docker/machine/machines
目录中同时删除虚拟机文件。 -
从“应用程序“文件夹中删除Docker快捷终端(Quickstart Terminal)和Kitematic.
-
从/usr/local/bin文件夹中删除docker, docker-compose和 docker-machine命令文件.
$ rm /usr/local/bin/docker
-
从系统中删除
~/.docker
文件夹. -
删除(列出的)每一台虚拟机.
$ docker-machine rm dev Successfully removed dev
删除一台虚拟机,意味着从
VirtualBox
和~/.docker/machine/machines
目录中同时删除虚拟机文件。 -
从“应用程序“文件夹中删除Docker快捷终端(Quickstart Terminal)和Kitematic.
-
从/usr/local/bin文件夹中删除docker, docker-compose和 docker-machine命令文件.
$ rm /usr/local/bin/docker
-
从系统中删除
~/.docker
文件夹.