现在流行用docker作容器来开发部署。
本文主要解决在mac上安装docker[-compose],以及启动一个nginx实例。
Requirement
系统要求
Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite。如果系统不满足需求,可以安装 Docker Toolbox。
提前安装好
- zsh
- homebrew
- sublime text or vim
安装
使用 Homebrew 安装
macOS 我们可以使用 Homebrew 来安装 Docker:
$ brew cask install docker
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password: # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/23608/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
docker was successfully installed!
在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标(
)。
手动下载安装
如果需要手动下载,请点击以下链接下载 Stable 或 Edge 版本的 Docker for Mac。
双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。
从应用中找到 Docker 图标并点击运行, 或者呼出Alfred输入
docker
回车。可能会询问 macOS 的登陆密码,输入即可。
点击状态栏的图标可以得到操作菜单。
第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。
这里有个小提示:
自己注册一个 docker 的账号,然后在小鲸鱼菜单里面登录
登录的时候用ID登录,不要用email,否则后续的命令行可能会出现Unable to find image 'nginx:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/latest: unauthorized: incorrect username or password.
See 'docker run --help'.
要找到自己的ID很简单,打开 [docker store](https://store.docker.com/), 登录以后看右上角,头像旁边就是自己注册的ID
启动终端后,通过命令可以检查安装后的 Docker 版本。
$ docker --version
Docker version 17.12.0-ce, build c97c6d6
$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
$ docker-machine --version
docker-machine version 0.13.0, build 9ba6da9
Docker for Mac 和 Docker Toolbox 已经包含了 Compose 了, 所以 Mac 用户不用单独安装Compose了。
如果 docker version、docker info 都正常的话,可以尝试运行一个 Nginx 服务器:
$ docker run -d -p 80:80 --name webserver nginx
参数的含义和用法参考网上的文档
服务运行后,可以访问 http://localhost,如果看到了 "Welcome to nginx!",就说明 Docker for Mac 安装成功了。
要停止 Nginx 服务器并删除执行下面的命令:
$ docker stop webserver
$ docker rm webserver
有些用户会觉得国内网络拉取docker镜像速度很慢,可能需要配置加速服务器。网上有人分享自己的加速地址,可以参考配置一下。