MacOS 上安装 Docker 的过程也相对简单。Docker 在 MacOS 上的安装通常是通过 Docker Desktop 实现的。Docker Desktop 是一个完整的应用程序,包含 Docker Engine、Docker CLI 和 Docker Compose,以及用于在 macOS 上运行容器的虚拟机(基于 HyperKit)。

下面是安装和配置 Docker Desktop 的步骤:

1. 系统要求

  • MacOS 10.14 (Mojave) 或更高版本。
  • 必须启用 虚拟化(默认启用)。
  • 必须支持 硬件虚拟化,并启用 Hypervisor.framework(MacOS 默认支持)。

2. 安装 Docker Desktop for Mac

2.1. 从 Docker 官方网站下载 Docker Desktop
  1. 打开 Docker 的官方网站:https://www.docker.com/products/docker-desktop
  2. 点击页面上的 Download Docker Desktop for Mac 按钮,下载 .dmg 安装包。
2.2. 安装 Docker Desktop
  1. 打开下载的 .dmg 文件,拖动 Docker 图标到 Applications 文件夹中。
  2. 完成后,可以通过 Launchpad应用程序文件夹打开 Docker Desktop。
2.3. 启动 Docker Desktop
  1. 启动 Docker Desktop 应用程序。
  2. 第一次启动时,Docker 会进行一些初始化操作,并且可能要求你提供 管理员权限 来设置虚拟化环境(通常是为了安装和配置 HyperKit)。
  3. 启动完成后,Docker 的图标会显示在屏幕顶部的菜单栏中,显示 Docker 是否正在运行。

3. 验证 Docker 是否安装成功

  1. 打开终端(Terminal)。

  2. 输入以下命令来检查 Docker 版本,确认安装成功:

    
      

    docker --version

    你应该会看到类似以下输出:

    
      

    Docker version 20.10.7, build f0df350

  3. 可以通过运行一个简单的容器来验证 Docker 是否正常工作,例如:

    
      

    docker run hello-world

    如果 Docker 正常工作,你将看到类似以下输出:

    
      

    Hello from Docker! This message shows that your installation appears to be working correctly.

4. 配置 Docker Desktop

4.1. 设置 Docker 内存和 CPU 配置

Docker Desktop 默认分配 2GB 内存和 2 个 CPU 核心。如果你需要调整这些配置(例如,提高性能),可以按照以下步骤进行:

  1. 打开 Docker Desktop。
  2. 点击 Preferences(偏好设置)图标(或者选择菜单栏中的 Docker > Preferences)。
  3. Resources(资源)选项卡中,你可以调整内存(Memory)、CPU 核心数量、硬盘空间等设置。
4.2. 启用或禁用 Docker Desktop 的自动启动

如果你希望 Docker Desktop 在系统启动时自动启动,可以在 Preferences > General 选项卡中启用 Start Docker Desktop when you log in

4.3. 启用 Kubernetes(可选)

Docker Desktop 提供了 Kubernetes 环境,你可以轻松启用并在本地运行 Kubernetes 集群:

  1. Preferences > Kubernetes 中,勾选 Enable Kubernetes,然后点击 Apply & Restart
  2. Kubernetes 启动后,你可以使用 kubectl 命令与 Kubernetes 集群交互。
4.4. Docker 镜像源配置(可选)

默认情况下,Docker 使用 Docker Hub 作为默认镜像仓库。如果你遇到速度较慢的问题,可以考虑配置国内镜像源(例如:阿里云镜像、网易云镜像等)。

在 Docker Desktop 的 Preferences > Docker Engine 选项卡中,你可以编辑 Docker 配置文件,添加镜像仓库配置。例如,使用阿里云镜像:


{ "registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"] }

修改后点击 Apply & Restart

5. Docker Desktop 功能

5.1. Docker CLI 和 Docker Compose

安装 Docker Desktop 后,Docker CLI 和 Docker Compose 会自动安装。你可以使用以下命令来查看版本:


docker-compose --version

你还可以使用 docker-compose 来管理多个容器的应用。例如,创建一个 docker-compose.yml 文件,运行多容器应用:


version: '3' services: web: image: nginx ports: - "8080:80" db: image: postgres environment: POSTGRES_PASSWORD: example

运行命令:


docker-compose up

5.2. 查看和管理容器

你可以使用 Docker CLI 来查看和管理容器:

  • 查看正在运行的容器

    
      

    docker ps

  • 查看所有容器(包括停止的容器)

    
      

    docker ps -a

  • 停止容器

    
      

    docker stop <container_id_or_name>

  • 删除容器

    
      

    docker rm <container_id_or_name>

  • 查看 Docker 镜像

    
      

    docker images

5.3. Docker Dashboard(Docker Desktop 提供的图形化界面)

Docker Desktop 提供了一个图形化的界面,称为 Docker Dashboard,你可以通过它来查看和管理容器、镜像和其他 Docker 资源。

打开 Docker Desktop 后,你可以通过点击 Dashboard 按钮进入该界面。

6. 常见问题

6.1. Docker Desktop 启动失败

如果 Docker Desktop 启动失败,可以尝试以下解决步骤:

  • 检查是否启用了虚拟化(Hypervisor.framework)。
  • 检查系统日志以找出错误信息:
    
      

    tail -f /var/log/system.log

  • 重启 Mac 并尝试重新启动 Docker Desktop。
6.2. Docker 容器性能问题

如果你遇到 Docker 容器性能不佳的情况,可以尝试:

  • 提高 Docker 分配的资源(内存和 CPU)。
  • 查看容器日志,确认容器内部没有错误或瓶颈。
6.3. Docker 镜像拉取速度慢

如果从 Docker Hub 拉取镜像速度较慢,可以考虑配置国内镜像源。你可以通过修改 Docker Desktop 配置来设置镜像加速器,如阿里云或网易云。

6.4. Docker Desktop 自动退出

如果 Docker Desktop 在启动后自动退出,可能是由于系统配置问题或 Docker 本身的 bug。尝试更新 Docker Desktop 到最新版本,或者重新安装 Docker Desktop。

7. 卸载 Docker Desktop

如果你不再需要 Docker,可以通过以下步骤卸载:

  1. 退出 Docker Desktop。

  2. 打开 Applications 文件夹,找到 Docker 图标并将其拖动到废纸篓中。

  3. 清除残留的 Docker 配置文件和数据:

    
      

    rm -rf ~/.docker


总结

现在你已经了解了如何在 MacOS 上安装 Docker,并且配置 Docker Desktop 和 Docker Compose 以便管理容器。如果遇到任何问题,随时可以向我提问!


继续扩展 Docker 在 MacOS 上的一些高级功能和管理技巧:

8. 高级 Docker 使用技巧

8.1. 使用 Docker Volume 管理持久数据

Docker 默认情况下是临时存储容器的数据,但你可以使用 数据卷(Volumes) 来持久化数据,避免容器删除后数据丢失。

  1. 创建数据卷

    docker volume create my_volume

  2. 使用数据卷启动容器: 假设我们需要将容器的 /data 目录挂载到主机上的数据卷 my_volume

    docker run -d --name my_container -v my_volume:/data nginx

  3. 查看数据卷信息

    docker volume inspect my_volume

  4. 删除数据卷: 删除不再使用的卷时,确保卷没有被容器使用:

    docker volume rm my_volume

8.2. 使用 Docker 网络隔离容器

Docker 提供了多种网络模式,你可以将容器置于不同的网络中,以实现隔离和安全。

  1. 创建自定义网络

    
      

    docker network create my_network

  2. 在自定义网络中运行容器

    docker run -d --name my_container --network my_network nginx

  3. 查看 Docker 网络

    docker network ls

  4. 删除自定义网络

    
      

    docker network rm my_network

8.3. 运行私有 Docker Registry

如果你希望将私有镜像存储在本地,可以运行一个 Docker 私有 Registry 服务。

  1. 运行私有 Registry: Docker 提供了一个官方的 Registry 镜像,可以用来搭建私有镜像仓库:

    docker run -d -p 5000:5000 --name registry registry:2

  2. 推送镜像到私有 Registry: 假设我们有一个镜像 nginx,想将其推送到私有仓库:

    docker tag nginx localhost:5000/my_nginx docker push localhost:5000/my_nginx

  3. 从私有 Registry 拉取镜像

    docker pull localhost:5000/my_nginx

8.4. 使用 Docker Compose 管理多容器应用

如果你需要运行多个容器来组成一个应用(例如:Web 服务器、数据库、缓存等),可以使用 Docker Compose。

  1. 安装 Docker Compose: Docker Desktop for Mac 默认安装了 Docker Compose,无需手动安装。

  2. 创建 docker-compose.yml 文件: 示例文件:

    version: '3' services: web: image: nginx ports: - "8080:80" db: image: postgres environment: POSTGRES_PASSWORD: example

  3. 启动服务: 在 docker-compose.yml 文件所在的目录运行:

    docker-compose up

  4. 在后台启动

    docker-compose up -d

  5. 停止服务

    docker-compose down

8.5. 配置 Docker Desktop 资源使用

Docker Desktop 在 macOS 上运行容器时,会使用一个虚拟机来提供 Docker 引擎的支持。你可以调整 Docker Desktop 使用的 CPU 和内存资源。

  1. 打开 Docker Desktop。
  2. 点击 Preferences(偏好设置)。
  3. Resources(资源)选项卡中,调整 CPU 和内存分配,确保 Docker 容器在本机上运行时性能优化。
8.6. 使用 Docker CLI 执行命令

Docker 提供了丰富的命令行选项,能够灵活管理容器、镜像和网络等资源。

  1. 列出所有容器

    docker ps -a

  2. 查看容器日志

    docker logs <container_id>

  3. 进入容器内部: 你可以进入正在运行的容器进行调试或查看:

    docker exec -it <container_id_or_name> bash

  4. 查看容器资源使用情况

    docker stats

  5. 删除所有停止的容器

    docker container prune

8.7. 使用 Docker Desktop Dashboard

Docker Desktop 提供了一个图形化的界面,称为 Docker Dashboard,你可以用它查看和管理容器、镜像、数据卷等。

  • 打开 Docker Desktop,点击 Dashboard 按钮。
  • Dashboard 中,你可以:
    • 查看所有容器的状态(运行中、停止等)。
    • 停止、重启或删除容器。
    • 查看容器的详细日志和配置。
    • 拉取、构建和推送镜像。
8.8. 配置 Docker Desktop 与 Docker Hub 的集成

Docker Hub 是一个公共的 Docker 镜像仓库,你可以在 Docker Desktop 中设置与 Docker Hub 的集成,直接从仓库拉取镜像或上传自己的镜像。

  1. 登录 Docker Hub

    • 打开 Docker Desktop。
    • 点击右上角的 Sign In 按钮,输入 Docker Hub 的账户和密码进行登录。
  2. 从 Docker Hub 拉取镜像

    docker pull nginx

  3. 将本地镜像推送到 Docker Hub

    • 给镜像打标签:
      
          

      docker tag my_image <your_dockerhub_username>/my_image:latest

    • 推送镜像:
      
          

      docker push <your_dockerhub_username>/my_image:latest

8.9. 创建和管理 Docker 镜像

你可以通过 Dockerfile 来创建自定义镜像。

  1. 创建 Dockerfile: 示例 Dockerfile:

    FROM ubuntu:20.04 RUN apt-get update && apt-get install -y nginx COPY . /usr/share/nginx/html CMD ["nginx", "-g", "daemon off;"]

  2. 构建镜像: 在 Dockerfile 所在目录下运行:

    docker build -t my_custom_image .

  3. 查看镜像

    
      

    docker images

  4. 删除镜像

    docker rmi my_custom_image

9. Docker 常见问题及解决方案

9.1. Docker 容器无法启动
  1. 问题:容器启动失败,通常会显示 ExitedCrashLoopBackOff 错误。

  2. 解决方案:查看容器日志以查找错误原因:

    docker logs <container_id_or_name>

  3. 如果是配置问题或环境变量缺失,检查 Dockerfile 或启动命令。

9.2. Docker 镜像拉取速度慢
  1. 问题:从 Docker Hub 拉取镜像非常慢。

  2. 解决方案:可以使用国内的镜像源,如阿里云、网易等,修改 Docker Desktop 配置文件:

    • 打开 Docker Desktop → Preferences → Docker Engine。

    • 添加 registry-mirrors 字段:

      { "registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"] }

    • 点击 Apply & Restart

9.3. Docker 容器挂起或卡住
  1. 问题:容器运行时变得卡住或无响应。

  2. 解决方案:可以尝试重启 Docker 容器或清理 Docker 环境:

    docker restart <container_id> docker system prune -a

9.4. Docker Desktop 占用过多资源
  1. 问题:Docker Desktop 占用过多内存和 CPU,影响系统性能。

  2. 解决方案:调整 Docker Desktop 的资源配置,在 Preferences > Resources 中设置分配的内存和 CPU 核心数。


总结

你现在已经掌握了在 MacOS 上安装和使用 Docker 的基本方法,并且了解了 Docker 在本地开发和生产环境中的一些高级配置和使用技巧。Docker 是一个非常强大的工具,能够帮助你更高效地管理应用和开发环境。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐