> For the complete documentation index, see [llms.txt](https://gushi10546.gitbook.io/aptos-kai-fa-zhe-wen-dang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gushi10546.gitbook.io/aptos-kai-fa-zhe-wen-dang/jie-dian/validators/shi-yong-docker.md).

# 使用 Docker

1. 安装 Docker 和 Docker- Compose， [Aptos CLI 0.3.1](/aptos-kai-fa-zhe-wen-dang/aptos-cli/an-zhuang-aptos-cli.md)。

{% hint style="info" %}
💡 注意在 APPLE M1上

Docker 只能在 Linux，Windows 和 Intel macOS 上进行测试。如果你在使用 M1 macOS，使用 Aptos-core 方法。
{% endhint %}

1. 为您的 Aptos 节点组合创建目录，为您的节点选择一个用户名，例如：

   ```
   export WORKSPACE=testnet
   export USERNAME=alice
   mkdir ~/$WORKSPACE
   cd ~/$WORKSPACE
   ```
2. 下载 validator.yaml 和 docker-compose.yaml 并将文件配置进此目录。

   ```
   wget <https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml>
   wget <https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml>
   ```
3. 在您的工作目录下生成密钥对（节点所有者，投票者，操作者密钥，共识密钥和网络密钥）

   ```jsx
   aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys
   ```

   这将在 `~/$WORKSPACE/keys` 目录下创建4个关键文件：

   * `public-keys.yaml`
   * `private-keys.yaml`
   * `validator-identity.yaml`,和
   * `validator-full-node-identity.yaml`.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p> 💡 需要注意：</p><p>将您的私钥文件备份到安全的地方。这些关键文件对于您建立节点的所有权很重要。 <strong>永远不要与任何人共享私钥。</strong></p></div>
4. 配置验证器信息。您需要设置节点可以使用的静态 IP/DNS 地址（首选DNS），并确保网络/防火墙正确配置为接受外部连接。请参见[FullNode的网络标识](https://aptos.dev/nodes/full-node/network-identity-fullnode)了解如何做到这一点。 您需要这些信息才能稍后在Aptos社区网站上注册。

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>💡 小提示</p><p><code>--full-node-host</code> 标志是可选的。</p></div>

   ```jsx
   cd ~/$WORKSPACE
   aptos genesis set-validator-configuration \\
       --local-repository-dir ~/$WORKSPACE \\
       --username $USERNAME \\
       --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \\
       --validator-host <Validator Node IP / DNS address>:<Port> \\
       --full-node-host <Full Node IP / DNS address>:<Port> \\
       --stake-amount 100000000000000

   # for example, with IP:

   aptos genesis set-validator-configuration \\
       --local-repository-dir ~/$WORKSPACE \\
       --username $USERNAME \\
       --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \\
       --validator-host 35.232.235.205:6180 \\
       --full-node-host 34.135.169.144:6182 \\
       --stake-amount 100000000000000

   # For example, with DNS:

   aptos genesis set-validator-configuration \\
       --local-repository-dir ~/$WORKSPACE \\
       --username $USERNAME \\
       --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \\
       --validator-host bot.aptosdev.com:6180 \\
       --full-node-host fn.bot.aptosdev.com:6182 \\
       --stake-amount 100000000000000
   ```

   这将创建2个 YAML files 在 `~/$WORKSPACE/$USERNAME` 目录下: `owner.yaml` 和 `operator.yaml`.
5. 创建一个布局模板文件，该文件定义了Aptos验证器集中的节点。

   ```jsx
   aptos genesis generate-layout-template --output-file ~/$WORKSPACE/layout.yaml
   ```

   编辑 `layout.yaml`, 增加 `root_key`, 验证者节点用户名和 `chain_id`:

   ```jsx
   root_key: "D04470F43AB6AEAA4EB616B72128881EEF77346F2075FFE68E14BA7DEBD8095E"
   users: ["<username you specified from previous step>"]
   chain_id: 43
   allow_new_validators: false
   epoch_duration_secs: 7200
   is_test: true
   min_stake: 100000000000000
   min_voting_threshold: 100000000000000
   max_stake: 100000000000000000
   recurring_lockup_duration_secs: 86400
   required_proposer_stake: 100000000000000
   rewards_apy_percentage: 10
   voting_duration_secs: 43200
   voting_power_increase_limit: 20
   ```

   请确保使用与示例中所示相同的根公钥和相同的链ID，这些配置将在注册期间用于验证节点。
6. 下载 AptosFramework Move 页面放置于 `~/$WORKSPACE` 目录下命名为 `framework.mrb`

   ```jsx
   aptos genesis generate-layout-template --output-file ~/$WORKSPACE/layout.yaml
   ```

   编辑 `layout.yaml`, 增加 `root_key`, 验证者节点用户名和 `chain_id`:

   ```jsx
   root_key: "D04470F43AB6AEAA4EB616B72128881EEF77346F2075FFE68E14BA7DEBD8095E"
   users: ["<username you specified from previous step>"]
   chain_id: 43
   allow_new_validators: false
   epoch_duration_secs: 7200
   is_test: true
   min_stake: 100000000000000
   min_voting_threshold: 100000000000000
   max_stake: 100000000000000000
   recurring_lockup_duration_secs: 86400
   required_proposer_stake: 100000000000000
   rewards_apy_percentage: 10
   voting_duration_secs: 43200
   voting_power_increase_limit: 20
   ```

   请确保使用与示例中所示相同的根公钥和相同的链ID，这些配置将在注册期间用于验证节点。
7. 编译genesis blob和路标

   ```jsx
   aptos genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
   ```

   这将会在您的工作目录下创建两个文件：`genesis.blob` 和 `waypoint.txt` 。
8. 总而言之，在您的工作目录中，您应该有一个文件列表：
   * `docker-compose.yaml` docker 编写文件以运行验证者和全节点。
   * `keys` 文件夹，包括：
     * `public-keys.yaml`: 所有者帐户、共识和网络的公钥（来自步骤4）。
     * `private-keys.yaml`: 所有者帐户、共识和网络的私钥（来自步骤4）。
     * `validator-identity.yaml`: 用于设置验证器身份的私钥（来自步骤4）。
     * `validator-full-node-identity.yaml`: 用于设置验证器完整节点标识的私钥（来自步骤4）。
   * `username` 文件夹，包括：
     * `owner.yaml`: 定义所有者、操作员和投票人映射。在测试模式下，它们都是相同的帐户（来自步骤5）。
     * `operator.yaml`: 将用于验证器和全节点的节点信息（来自步骤5）。
   * `layout.yaml`: 布局文件包含根密钥、验证器用户和链ID的键值（来自步骤6）。
   * `framework.mrb`: AptosFramework Move下载包（来自步骤7）。
   * `waypoint.txt`: genesis 交易的路标（来自步骤8）。
   * `genesis.blob` genesis二进制文件，包含关于框架、validatorSet 等的所有信息（来自步骤8）。
9. 运行docker compose:`docker-compose up`。（或`docker compose up`取决于您的版本。）

现在，您已经完成了在测试模式下设置验证器节点。您可以继续访问我们的[Aptos社区平台](https://community.aptoslabs.com/)注册网站。此外，您还可以按照以下说明设置全节点。

1. \[可选择的]现在让我们在另一台机器上设置全节点。下载 `fullnode.yaml` 和 `docker-compose-fullnode.yaml` 配置文件到全节点机器的工作目录中。

   ```
   wget <https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose-fullnode.yaml>
   wget <https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml>
   ```
2. 编辑 `fullnode.yaml` 文件中为验证者节点去更新 IP 地址
3. \[可选择的] 复制 `validator-full-node-identity.yaml`, `genesis.blob` 和 `waypoint.txt` 文件将上面生成的文件保存到全节点机器上的同一工作目录中。
4. \[可选择的] 运行 docker-compose: `docker-compose -f docker-compose-fullnode.yaml up`. 现在，您已经成功地在测试模式下完成了节点的设置。您现在可以进入[Aptos社区平台](https://community.aptoslabs.com/)注册网站。
