> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/zh-tw/an-zhuang/setup-docker.md).

# 設定 Docker

Overleaf 執行於 Docker 上。你必須安裝：

* Docker Engine（Docker CE）
* Docker Compose 外掛（`docker compose`，v2）

以下步驟適用於較新的 Ubuntu LTS（20.04/22.04/24.04）。

{% hint style="warning" %}
避免安裝 `docker.io` 來自 Ubuntu 的預設 apt 套件庫。\
請使用 Docker 的官方套件庫，以取得較新的 Docker 版本以及 `docker compose` 外掛。
{% endhint %}

官方文件來自： <https://docs.docker.com/engine/install/ubuntu/>.

{% stepper %}
{% step %}

### 1）移除舊的／衝突的套件（如果存在）

如果 Docker 先前是從其他來源安裝，請先移除：

{% code overflow="wrap" %}

```bash
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
```

{% endcode %}

即使某些套件未安裝，這個指令也是安全的。
{% endstep %}

{% step %}

### 2）新增 Docker 的官方 apt 套件庫

安裝必要前置套件：

```bash
sudo apt update
sudo apt install -y ca-certificates curl
```

新增 Docker GPG 金鑰：

{% code overflow="wrap" %}

```bash
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
```

{% endcode %}

新增套件庫：

{% code overflow="wrap" %}

```bash
# 將套件庫加入 Apt 來源：
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
```

{% endcode %}
{% endstep %}

{% step %}

### 3）安裝 Docker Engine + Compose 外掛

安裝 Docker 與 Compose 外掛：

{% code overflow="wrap" %}

```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

{% endcode %}

開機時啟動 Docker：

```bash
sudo systemctl enable --now docker
```

{% endstep %}

{% step %}

### 4）驗證安裝

以下指令應可順利執行，不會出現錯誤：

```bash
docker --version
docker compose version
sudo docker run --rm hello-world
docker ps
```

{% endstep %}

{% step %}

### 5）（選用）無需 sudo 執行 Docker

將你的使用者加入 `docker` 群組：

```bash
sudo usermod -aG docker $USER
```

接著 **登出後再登入**，或執行：

```bash
newgrp docker
```

現在這應該可以在不使用 `sudo`:

```bash
docker ps
```

{% hint style="danger" %}
此 `docker` 群組在主機上擁有與 root 等同的存取權限。\
這對一般的 Overleaf 安裝來說是預期行為，若你啟用 Sandboxed Compiles，這一點尤其相關。
{% endhint %}
{% endstep %}
{% endstepper %}

### 下一步

當 Docker 可正常運作後，請依照以下位置的 Toolkit 安裝步驟繼續： [使用 Toolkit](/on-premises/zh-tw/an-zhuang/using-the-toolkit.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/zh-tw/an-zhuang/setup-docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
