macOS安装Docker

安装Docker Desktop on Mac

从Docker Hub登陆账号后下载 Docker Desktop : Download from Docker Hub

  • 通过拖放将Docker安装到Applications

../../_images/docker-app-drag.png
  • 点击启动Docker应用,此时会提示需要权限

../../_images/docker_privileged_access.png

确认权限之后,docker进入启动

../../_images/docker_starting.png

完成启动后,可以按照提示执行以下命令验证:

docker info
docker version
docker images
docker run hello-world
docker ps
  • Docker Hub官方提供了一个验证案例,可以参考以下命令验证:

    git clone https://github.com/docker/doodle.git
    # 构建docker镜像(请查看Dockerfile)
    cd doodle/cheers2019 && docker build -t huataihuang/cheers2019 .
    # 运行容器
    docker run -it --rm huataihuang/cheers2019
    # 登陆docker Hub并将自己的镜像推送入仓库
    docker login && docker push huataihuang/cheers2019
    

备注

查看目录下的 Dockerfile 可以看到这是一个简单绘制ASCII图形的Go程序,提供了一个运行案例。上述案例完整体现了一个如何构建自己的Docker程序并推送到Docker Hub的实例,也是今后构建自己的应用程序的一个良好模版,简单高效。

通过 Homebrew 安装Docker Desktop on Mac

通过Homebrew安装Docker Desktop for macOS
brew install --cask docker

备注

使用 Homebrew 安装 Docker Desktop on Mac 实际上也是从Docker官方下载安装包进行安装,但是 brew 包装了所有交互过程,可以用一条命令完成软件包

  • 依然需要如上文方式,在 macOS 的LaunchPad上点击 Docker 图标启动Docker虚拟机来运行容器,然后本地会增加 docker CLI,并且能够连接到Docker虚拟机内部访问 docker 服务

工作原理

Docker Desktop on Mac 本质上是在 macOS 上运行了一个 xhyve - macOS平台的KVM Hypervisor,然后运行基于 Alpine Linux 虚拟机,这样就能完整实现一个 Linux Atlas 环境来运行Docker容器。巧妙的是,Docker Desktop on Mac 很好地包装了多个开源技术,方便完成部署,你甚至不知道在macOS上执行 docker ps 是连接到虚拟机内部运行的docker服务(相当于远程网络调用)。

此外,Docker Desktop on Mac还提供集成 minikube 来模拟 Kubernetes Atlas 开发环境。不过,我为了能够更好模拟Kubernetes集群,采用 kind(本地docker模拟k8s集群)

参考