---
schema_version: "1"
id: 81efd2d8c5c3c4ce8669e8dce1e3c1354642389507ee4eead2cfa6012de7d17e
title: 容器中的 Tableau Server
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/server-linux/server-in-container.md
canonical_url: https://help.tableau.com/current/server-linux/zh-cn/server-in-container.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 8c51c31079940922370d38c2600c27f1a5b91ecb47854a5c9f3f28aeffc40acc
description: Overview and workflow for running Tableau Server in a container.
---
[跳转到主要内容](#main-content)

# 容器中的 Tableau Server

## 简介

“容器中的 Tableau Server”是 Tableau 的第一款基于容器的服务器产品。“容器中的 Tableau Server”是在 Linux Docker 容器内运行的一体化 Tableau Server 实例。换句话说，“容器中的 Tableau Server”是运行整个自包含 Tableau Server 应用程序的 Docker 映像。“容器中的 Tableau Server”是我们为在基于容器的环境中运行的 Tableau Server 提供支持的许多步骤中的第一个步骤。

了解“容器中的 Tableau Server”概念的最简单方法是将其看作一个预装了 Tableau Server 的 VM。映像以 UBI 8 映像为基础，并在容器内运行 `supervisord`（而不是 `systemd`）。容器启动 `supervisord` 后，将立即尝试初始化和启动 Tableau Server。此处的大部分文档旨在描述如何提供配置和利用自动化，以便您可以在 Docker 环境中运行 Tableau Server。

“容器中的 Tableau Server”映像设置工具可帮助您创建和自定义容器映像以包括自定义包和项目。该工具的主要功能之一是构建容器映像并安装自定义数据连接器。

## “容器中的 Tableau Server”的限制

- “容器中的 Tableau Server”仅支持使用服务器 ATR 激活许可证。不支持脱机激活。
- “容器中的 Tableau Server”当前不支持 Resource Monitoring Tool (RMT) 代理。
- “容器中的 Tableau Server”不支持 Kerberos。

若要在概念验证方案中快速测试容器映像中的 Tableau Server，请参见[容器中的 Tableau Server - 快速入门](https://help.tableau.com/current/server-linux/zh-cn/server-in-container_quickstart.htm)。

## “容器中的 Tableau Server”的基本工作流程

以下是使用“容器中的 Tableau Server”的基本工作流程。您可以在链接中找到每个步骤的详细说明。

1. 使用设置工具创建“容器中的 Tableau Server”的自定义映像。请参见[容器中的 Tableau Server - 使用设置工具](https://help.tableau.com/current/server-linux/zh-cn/server-in-container_setup-tool.htm)。
2. 运行您创建的映像以启动和运行“容器中的 Tableau Server”。请参见[容器中的 Tableau Server - 使用映像](https://help.tableau.com/current/server-linux/zh-cn/server-in-container_image.htm)。

## Tableau Server 功能注意事项

某些 Tableau Server 功能在容器中的工作方式有所不同。本节涵盖在容器环境中具有特殊或不同注意事项的特定功能。

### Active Directory

#### 设置 AD 域控制器

如果您计划使用 Active Directory 作为 Tableau Server 网页和站点的身份存储，则需要考虑额外的注意事项。在 Linux 环境中运行的 Tableau Server 通过检查其 IP 子网来动态确定要与之通信的 AD 域控制器。可以为容器分配任意 IP 地址，在这种情况下，Tableau Server 不一定能够使用其 IP 地址来查找合适的域控制器。因此，可能需要为 Tableau Server 配置特定的域控制器/主机名以与之通信。为此，请执行以下步骤：

1. 确定您希望 Tableau Server 使用哪个域控制器并获取主机名。
2. 使用标准 Tableau Server 管理配置选项将配置键 `wgserver.domain.ldap.hostname` 设置为主机名：
    
    - 在 json 配置文件 `CONFIG_FILE` 中设置值。
    - 使用 TSM 配置命令
        
        tsm configuration set -k wgserver.domain.ldap.hostname -v <hostname>

#### 将 AD 证书导入 Tableau Server 密钥存储

默认情况下，只要使用简单绑定，“容器中的 Tableau Server”就会通过 StartTLS 与 AD 通信。所以在这种配置下运行容器时，需要将 AD 服务器证书导入 Tableau Server 密钥存储，否则服务器初始化将失败。为此，请执行以下步骤：

1. 创建一个 `pre-init-command` 脚本（检查“初始化前脚本”部分）。添加以下行以将 AD 证书添加到 Tableau Server 密钥存储。
    
    ${INSTALL\_DIR}/packages/repository.${SERVICE\_VERSION}/jre/bin/keytool -importcert -noprompt -alias startTlsCert -file <mounted-certificate-path> -storetype JKS -storepass changeit -keystore ${DATA\_DIR}/config/tableauservicesmanagerca.jks
2. 在为 `pre-init-command` 脚本中的 `-file` 参数提供的文件路径处挂载 AD 服务器证书。

或者，可以禁用通过 StartTLS 与 AD 通信的默认设置。将 `wgserver.domain.ldap.starttls.enabled` 设置为 `false` 以禁用 StartTLS。但不推荐这样做。

**注意：**有关 AD 的示例配置实体，请参见[LDAP - Active Directory](https://help.tableau.com/current/server-linux/zh-cn/entity_identity_store.htm#LDAP)。

### 部署配置举例

#### Docker

##### “容器中的 Tableau Server”基本用法

docker run \\
-e LICENSE\_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>

##### 具有自动化初始管理员用户的“容器中的 Tableau Server”基本用法

docker run \\
-e LICENSE\_KEY=<key> \\
-e TABLEAU\_USERNAME=<myadmin> \\
-e TABLEAU\_PASSWORD\_FILE=/etc/tableau-admin-secret \\
-v <full-path-to-pw-file>:/etc/tableau-admin-secret \\
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

##### 仅 TSM 模式

docker run \\
-e TSM\_ONLY=1 \\
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

##### 多节点基本用法

###### 初始节点

**选项 1：**如果服务器配置 (`CONFIG_FILE` ) 指定多节点拓扑，则使用此选项：

docker run \\
-v <network-shared-directory>:/docker/config/bootstrap \\
-v <full-path-to-config-file>:/docker/config/config.json:ro \\
-e LICENSE\_KEY=<key> \\
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \\
--hostname=<static (internal) name of host machine> \\
-d <Tableau Server in a Container image ID or tag>

**选项 2：**如果您想要多节点部署，即使服务器配置未指定多节点拓扑，也可以使用此选项：

docker run \\
-v <network-shared-directory>:/docker/config/bootstrap \\
-e LICENSE\_KEY=<key> -e ALWAYS\_WRITE\_BOOTSTRAP\_FILE=1 \\
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \\
--hostname=<static (internal) name of host machine> \\
-d <Tableau Server in a Container image ID or tag>

###### 附加节点

docker run \\
-v <network-shared-directory>:/docker/config/bootstrap \\
-e BOOTSTRAP\_INSTALL=1 \\
-p 8080:8080 -p 8800-9000:8800-9000 \\
--hostname=<static (internal) name of host machine> \\
-d <Tableau Server in a Container image ID or tag>

##### 外部化数据用法

docker run \\
-v <empty-data-dir>:/var/opt/tableau \\
-e LICENSE\_KEY=<key> \\
--hostname=<static (internal) name of host machine> \\
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

##### 初始化容器基本用法

**初始化容器**

docker run \\
-v <empty-data-dir>:/var/opt/tableau \\
-e LICENSE\_KEY=<key> \\
-e INIT\_CONTAINER=1 \\
--hostname=<static (internal) name of host machine> \\
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

**运行容器**

docker run \\
-v <empty-data-dir>:/var/opt/tableau \\
--hostname=<static (internal) name of host machine> \\
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

##### 基本备份还原：单节点

docker run \\  
\-v <full-path-to-backup-file>:/docker/config/backup/backup-file.tsbak \\  
\-v <full-path-to-config-only-file>:/docker/config/config.json:ro \\  
\-v <full-path-to-identity-store-config-only-file>:/docker/config/identity-store-config.json \\  
\-e LICENSE\_KEY=<key> \\  
\-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

#### Docker-Compose

version: '3.2'
services:
    tableau-server:
         hostname: localhost
         volumes:
              - <your-tsm-command-file>:/docker/config/tsm-commands:ro
              - <your-config-file >:/docker/config/config.json:ro
         ports:
              - "8080:8080"
         image: ${IMAGE\_NAME}
         environment:
              - LICENSE\_KEY=<license-key>

## 此部分中的其他文章