

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安装 Docker 以与 AWS SAM CLI 一起使用
<a name="install-docker"></a>

Docker 是在计算机上运行容器的应用程序。使用Docker， AWS SAM 可以提供类似于容器的本地环境 AWS Lambda ，用于构建、测试和调试您的无服务器应用程序。

**注意**  
仅在本地测试应用程序和使用 `--use-container` 选项构建部署包时才需要 Docker。

**Topics**
+ [安装 Docker](#install-docker-instructions)
+ [后续步骤](#install-docker-next-steps)

## 安装 Docker
<a name="install-docker-instructions"></a>

请按照以下说明在您的操作系统上安装 Docker。

### Linux
<a name="install-docker-instructions-linux"></a>

Docker 适用于许多不同的操作系统，包括大多数现代 Linux 分发版，例如 CentOS、Debian 和 Ubuntu。有关在特定的操作系统上安装 Docker 的信息，请参阅 Docker Docs 网站上的[获取 Docker](https://docs.docker.com/get-docker/)。

**要在 Amazon Linux 2 或 Amazon Linux 2023 上安装 Docker**

1. 更新实例上已安装的程序包和程序包缓存。

   ```
   $ sudo yum update -y
   ```

1. 安装最新的 Docker Community Edition 程序包。
   + 对于 Amazon Linux 2，运行以下命令：

     ```
     $ sudo amazon-linux-extras install docker
     ```
   + 对于 Amazon Linux 2023，运行以下命令：

     ```
     $ sudo yum install -y docker
     ```

1. 启动 Docker 服务。

   ```
   $ sudo service docker start
   ```

1. 将 `ec2-user` 添加到 `docker` 组，以便您能够执行 Docker 命令，而无需使用 **sudo**。

   ```
   $ sudo usermod -a -G docker ec2-user
   ```

1. 通过退出并重新登录接受新的 `docker` 组权限。为此，请关闭当前的 SSH 终端窗口并在新终端窗口中重新连接到实例。您的新 SSH 会话应具有相应的 `docker` 组权限。

1. 验证 `ec2-user` 是否能在不使用 **sudo** 的情况下运行 Docker 命令。

   ```
   $ docker ps
   ```

   您应该看到以下输出，确认 Docker 已安装并正在运行：

   ```
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
   ```

**注意**  
在 Linux 上，要使用与主机不同的指令集架构来构建和运行 Lambda 函数，还需要其他步骤配置 Docker。例如，要在 `x86_64` 计算机上运行 `arm64` 函数，可以运行以下命令来配置 Docker 进程守护程序：`docker run --rm --privileged multiarch/qemu-user-static --reset -p yes`。

如果您在安装 Docker 时遇到问题，请查看 [排查 安装错误](install-sam-cli.md#sam-cli-troubleshoot-install)。或者，请参阅 Docker Docs 网站上的 **Linux 安装后步骤**中的[故障排除](https://docs.docker.com/engine/install/linux-postinstall/#troubleshooting)部分。

### macOS
<a name="install-docker-instructions-macos"></a>

**注意**  
官方支持 Docker Desktop，但从 AWS SAM CLI 1.47.0 版本开始，您可以使用替代方案，只要它们使用 Docker 运行时系统即可。

1. 安装 Docker

    AWS SAM CLI 支持在 macOS Sierra 10.12 或更高版本上运行 Docker。有关 Docker 的安装方法，请参阅 Docker Docs 网站上的[安装适用于 Mac 的 Docker Desktop](https://docs.docker.com/docker-for-mac/install/)。

1. 配置共享驱动器

    AWS SAMCLI要求在共享云端硬盘中列出项目目录或任何父目录。这可能需要文件共享。有关更多信息，请参阅 *Docker 文档*中的[卷装载需要文件共享](https://docs.docker.com/desktop/troubleshoot-and-support/troubleshoot/topics/#volume-mounting-requires-file-sharing-for-any-project-directories-outside-of-home)故障排除主题。

1. 验证安装

   在安装 Docker 后，请验证它是否正常运行。还要确认您可以从命令行（例如，`docker ps`）运行 Docker 命令。您无需安装、获取或拉取任何容器。 AWS SAM CLI 会根据需要自动执行此操作。

如果您在安装 Docker 时遇到问题，有关更多故障排除提示，请参阅 Docker 文档网站的[故障排除和诊断](https://docs.docker.com/docker-for-mac/troubleshoot/)部分。

### Windows
<a name="install-docker-instructions-windows"></a>

**注意**  
AWS SAM 正式支持Docker桌面。但是，从 AWS SAM CLI 1.47.0 版本开始，您可以使用替代方案，只要它们使用 Docker 运行时系统即可。

1. 安装 Docker。

   Docker Desktop 支持最新的 Windows 操作系统。对于旧版本的 Windows，可以使用 Docker 工具箱。选择您的 Windows 版本以执行正确的 Docker 安装步骤：
   + 要在 Windows 10 上安装 Docker，请参阅 Docker 文档网站上的[安装适用于 Windows 的 Docker Desktop](https://docs.docker.com/docker-for-windows/install/)。
   + 要Docker为早期版本的 Windows 进行安装，请参阅[Docker工具箱](https://github.com/docker-archive/toolbox) GitHub 存储库Docker中的工具箱。

1. 配置共享驱动器。

    AWS SAMCLI要求在共享云端硬盘中列出项目目录或任何父目录。在某些情况下，必须共享驱动器才能让 Docker 正常运行。

1. 验证安装。

   在安装 Docker 后，请验证它是否正常运行。还要确认您可以从命令行（例如，**docker ps**）运行 Docker 命令。您无需安装、获取或拉取任何容器。 AWS SAM CLI 会根据需要自动执行此操作。

如果您在安装 Docker 时遇到问题，有关更多故障排除提示，请参阅 Docker 文档网站的[故障排除和诊断](https://docs.docker.com/docker-for-mac/troubleshoot/)部分。

## 后续步骤
<a name="install-docker-next-steps"></a>

有关如何安装 AWS SAMCLI，请参阅[安装 AWS SAM CLI](install-sam-cli.md)。