# Update within a Docker container

#### Keep your agent container up-to-date, to ensure optimal performance and access to the latest features and improvements.

***

## Updating Xopero ONE agent

{% tabs %}
{% tab title="Windows (Docker Desktop)" %}

## Replacing the agent

{% hint style="danger" %}
The only way to update an agent installed in a container is to **remove the existing version and create a new one**.
{% endhint %}

1. Download the new image and remove the old container with the agent using the following command:

```dockerfile
docker pull xopero/gitprotect-agent:latest
docker stop xopero-agent && docker rm xopero-agent
```

2. Create a new container with the **Xopero ONE agent**:

```dockerfile
docker run -d \
  --name xopero-agent \
  -e ManagementServiceUrl="<your_xopero_service_URL>" \
  -e XoperoOverriddenHostName="<device_name>" \
  -v /opt/gitprotect-agent/data:/app/Xopero \
  --restart unless-stopped \
  xopero/gitprotect-agent:latest
```

* `<your_xopero_service_URL>` — **Xopero ONE Management Service** address with the port (i.e., `123.456.7.890:28555`)
* `<device_name>` — custom **Docker** container name

3. Once done, the **Xopero agent** should now be up to date.
   {% endtab %}

{% tab title="QNAP NAS (CS > 3.0)" %}
{% hint style="warning" %}
This method requires **Container Station version 3.0 or later**.
{% endhint %}

## Update process

1. First, open **Container Station** on your **QNAP** device.
2. Locate and select the container running the **agent** you want to update, then click the **settings** ⚙️ icon to open the container settings.

<figure><img src="/files/8BWj5frh0QKwhz1MBUs5" alt=""><figcaption></figcaption></figure>

3. In the settings menu, select the **Recreate** option to proceed with the update. This action replaces the current container with a new one based on the latest image.

<figure><img src="/files/7wJ13okRbGZ8mfxcESJh" alt="" width="170"><figcaption></figcaption></figure>

4. Switch to **Advanced mode** (see illustration below). You will be prompted for the **Docker Hub** image address — enter the address shown below:

```docker
xopero/gitprotect-agent:latest
```

<figure><img src="/files/RbM3KbO0rJ8oNWMLjVxF" alt="" width="563"><figcaption></figcaption></figure>

5. Make sure you select the option **Try pulling the image from the registry before creating the container** (this ensures that the latest version of the image is used) and click **Next** to continue.
6. You can now edit the container settings as you would when creating a new container. Adjust them if needed, then click **Next** again to move to the summary page.

<figure><img src="/files/9FysWn71jmlnAFHdw1u5" alt="" width="563"><figcaption></figcaption></figure>

7. Review the summary of the settings and changes. When everything looks correct, click **Finish**. **Container Station** will download the latest image and create a new container using the settings and data from the previous one. This updates the **agent** to the latest version while preserving all existing settings and data.

<figure><img src="/files/s2Ix754qWcSRwavJsR55" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="QNAP NAS (CS < 3.0)" %}
{% hint style="danger" %}
The only way to update an **agent** installed in a container is to remove the existing version and install a new one. Creating a new container requires reactivating the device, so you will need to reassign it to all backup plans.
{% endhint %}

## Update process

1. Log in to [**XMS**](#user-content-fn-1)[^1].
2. Go to the **Devices** tab and find the **Docker agent**.
3. Click the **device details** ℹ️ button. Review the **Docker agent** plans and note them, as you will need to add them again. All plans can be viewed in the **Backup plans** section; expand the list by clicking **Load more**.
4. Remove the old **Xopero ONE agent** container — in **Container Station**, click the **Remove** icon in the **Actions** tab to delete the container.
5. Once the old container has been removed, install the **Xopero ONE agent Docker** image again. Then, add the **agent** to all the plans it was previously assigned to.
   {% endtab %}

{% tab title="Synology NAS (Container Manager)" %}

## Update process

1. When using the `:latest` tag, the **Container Manager** monitors the image for updates. When a new version is detected, the **Image** tab will show the status **Update available**. Click the status to start the update process.

{% hint style="warning" %}
If the **Update available** button does not appear even when the **agent** update is available for other devices, you may wait up to 12 hours before it becomes visible.
{% endhint %}

<figure><img src="/files/9jyFX2RtAR1JULPq3Ffe" alt="" width="563"><figcaption></figcaption></figure>

2. When activated, a system prompt will indicate that the services and container will be temporarily suspended during the update. Confirm by clicking the **Update** button.

<figure><img src="/files/6alkXPqYVhX19QlA24k0" alt="" width="563"><figcaption></figcaption></figure>

3. You will be prompted to confirm the update again by clicking the **Update** button.

<figure><img src="/files/T1ZqmAejQ7rv6C2B3u7v" alt="" width="563"><figcaption></figcaption></figure>

4. The update progress will appear in the list of operations. Once the image is successfully downloaded, containers set to **auto-start** will restart automatically.

<figure><img src="/files/vMbKbG7DoSQWS7O0PPv6" alt="" width="563"><figcaption></figcaption></figure>

5. To verify the update, go to the **Containers** tab to check that the container is functioning correctly. Also, check if the system shows the latest version in **Xopero ONE Management Service**.
   {% endtab %}
   {% endtabs %}

[^1]: Xopero ONE Management Service


---

# Agent Instructions: 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:

```
GET https://helpcenter.xopero.com/xopero-one-en/updates/xopero-one-agent/update-within-a-docker-container.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
