如何在 macOS 或 Windows 上设置 Docker 开发环境

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Docker 已成为开发者的必备工具,使他们能够轻松创建和管理容器化应用程序。本教程将指导你在 macOS 或 Windows 上设置 Docker 开发环境,确保你拥有开始构建和部署基于 Docker 的应用程序所需的工具和知识。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/ls -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/ps -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/start -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/stop -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/create -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/pull -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} docker/build -.-> lab-411603{{"如何在 macOS 或 Windows 上设置 Docker 开发环境"}} end

理解 Docker 基础

什么是 Docker?

Docker 是一个开源平台,它允许开发者在一个名为容器的一致且隔离的环境中构建、部署和运行应用程序。容器将一个应用程序及其所有依赖项打包在一起,确保该应用程序无论在何种底层基础设施上都能可靠且一致地运行。

Docker 容器

Docker 容器是一个轻量级、独立且可执行的包,它包含运行一个应用程序所需的一切——代码、运行时环境、系统工具和库。容器相互隔离,并且与主机操作系统隔离,为应用程序的运行提供了一个一致且可靠的环境。

graph LR A[应用程序] --> B[依赖项] B --> C[运行时环境] C --> D[操作系统] D --> E[Docker 容器] E --> F[Docker 主机]

Docker 镜像

Docker 镜像是容器的构建块。镜像是一个只读模板,其中包含创建 Docker 容器的指令。镜像是使用 Dockerfile 创建的,Dockerfile 是一个文本文件,其中包含构建镜像所需的所有命令。

Docker 注册表

Docker 注册表是用于存储和分发 Docker 镜像的系统。最受欢迎的公共注册表是 Docker Hub,它为各种应用程序和服务提供了大量预构建的镜像。

Docker 架构

Docker 使用客户端 - 服务器架构,其中 Docker 客户端与 Docker 守护进程通信,Docker 守护进程负责构建、运行和管理 Docker 容器。

组件 描述
Docker 客户端 Docker 系统的用户界面。它允许用户与 Docker 守护进程进行交互。
Docker 守护进程 管理 Docker 容器和镜像的后台进程。
Docker 注册表 用于存储和分发 Docker 镜像的仓库。
Docker 网络 允许容器相互通信以及与外部世界通信。
Docker 卷 提供一种持久化 Docker 容器生成和使用的数据的方法。

在 macOS 或 Windows 上安装 Docker

在 macOS 上安装 Docker

  1. 访问 Docker 网站 并下载适用于 Mac 的 Docker Desktop。
  2. 运行安装程序并按照屏幕上的说明完成安装。
  3. 安装完成后,Docker 图标将出现在菜单栏中,表明 Docker 正在运行。

在 Windows 上安装 Docker

  1. 访问 Docker 网站 并下载适用于 Windows 的 Docker Desktop。
  2. 运行安装程序并按照屏幕上的说明完成安装。
  3. 安装完成后,Docker 图标将出现在系统托盘中,表明 Docker 正在运行。

验证安装

安装 Docker 后,你可以通过打开终端(macOS)或 PowerShell(Windows)并运行以下命令来验证安装:

docker version

这将显示安装在你系统上的 Docker 客户端和 Docker 服务器(守护进程)的版本。

Docker Compose 安装

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。要安装 Docker Compose:

  1. 访问 Docker Compose GitHub 仓库 并下载适用于你操作系统的最新版本的 Docker Compose。
  2. 通过运行以下命令(适用于 Linux/macOS)使下载的文件可执行:
    chmod +x docker-compose
  3. 将 Docker Compose 二进制文件移动到系统路径中的一个目录,例如 /usr/local/bin/~/bin/

现在你可以通过运行以下命令来验证安装:

docker-compose version

这将显示安装在你系统上的 Docker Compose 的版本。

构建 Docker 开发环境

创建 Dockerfile

Dockerfile 是一个文本文件,其中包含构建 Docker 镜像所需的所有命令。以下是一个简单 Python Web 应用程序的 Dockerfile 示例:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt.
RUN pip install --no-cache-dir -r requirements.txt
COPY..
CMD ["python", "app.py"]

此 Dockerfile:

  1. 基于 python:3.9-slim 基础镜像。
  2. 将工作目录设置为 /app
  3. requirements.txt 文件复制到工作目录。
  4. 安装 requirements.txt 中列出的 Python 依赖项。
  5. 将应用程序代码复制到工作目录。
  6. 指定运行应用程序的命令(python app.py)。

构建 Docker 镜像

要从 Dockerfile 构建 Docker 镜像,请在与 Dockerfile 相同的目录中运行以下命令:

docker build -t my-python-app.

这将构建一个标签为 my-python-app 的 Docker 镜像。

运行 Docker 容器

要从 my-python-app 镜像运行 Docker 容器,请使用以下命令:

docker run -p 8080:8080 my-python-app

这将启动一个新容器,并将主机上的 8080 端口映射到容器中的 8080 端口。

使用 Docker Compose 进行开发

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。以下是一个简单的带有数据库的 Web 应用程序的 docker-compose.yml 文件示例:

version: "3"
services:
  web:
    build:.
    ports:
      - 8080:8080
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myapp
      POSTGRES_PASSWORD: secret
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

docker-compose.yml 文件定义了两个服务:webdbweb 服务从当前目录构建 Docker 镜像,并将主机上的 8080 端口映射到容器中的 8080 端口。db 服务使用官方的 PostgreSQL 镜像并为应用程序设置一个数据库。

要启动应用程序,请运行:

docker-compose up -d

这将在后台启动 webdb 容器。

总结

通过遵循本教程,你将学习如何在你的 macOS 或 Windows 机器上安装 Docker,理解 Docker 的基础知识,并构建一个满足你需求的 Docker 开发环境。掌握这些技能后,你将能够简化你的开发工作流程,并利用 Docker 提供的优势,例如一致且可重现的环境、轻松部署以及增强的可扩展性。