> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsoar-8-on-prem/8.10/configure-cortex-xsoar/engines/install-an-engine/docker/install-docker/use-the-cortex-xsoar-container-registry.md).

# Use the Cortex XSOAR Container Registry

Use the Cortex XSOAR 8.10 On-prem Container Registry.

By default, Cortex XSOAR uses Docker Hub's public container registry. As an alternative to using Docker Hub, you can use the Cortex XSOAR private container registry (XSOAR Registry), which contains all Docker images that Cortex XSOAR uses in integrations and automations. When you use the XSOAR Container Registry, you can avoid limitations that Docker imposes on Docker Hub, for example rate limits. The registry is available at: **`xsoar-registry.pan.dev`**.

The XSOAR Registry requires authentication using the following credentials:

* Username: Use the Customer Name. The customer name can be found at \<Your Username> → About.
* Password: Use the license ID. To obtain the license ID, go to the license file and copy the ID from the **`id`** property, or run the **`!GetLicenseID`** command, included in the **Common Scripts** content pack.

  The license ID starts and ends with the CUID string.

To pull Docker images from the XSOAR Registry, verify the following base URLs are allowed in your firewall/proxy:

* **`https://xsoar-registry.pan.dev`**
* **`https://gcr.io`**

When using a custom Docker registry, including the Cortex XSOAR Container Registry, you must include **`localhost`** when you create a custom Docker image. Examples:

* **`localhost.local/directory/container_name`**
* **`localhost/directory/container_name`**

1. Authenticate to the XSOAR Registry.

   * For Docker: **` sudo -u demisto docker login -u`` `` `*****`<license customer name>`*****`-p`*****`<license id>`*****`xsoar-registry.pan.dev`**
   * For Podman (Red Hat 8.x): **`sudo su -s /bin/bash - demisto -c 'podman login -u "<license customer name>" -p "<license id>" xsoar-registry.pan.dev'`**

   If you see an error such as **`Error saving credentials: mkdir /home/demisto: permission denied`**, the demisto user is either missing the home directory or the permissions on the directory are not valid.

   1. To verify the home directory assigned to the demisto user, run **`echo ~demisto`** to display the home directory, such as: **`/home/demisto`**.
   2. To ensure the directory exists and has the correct permissions, run the following commands, using the directory from **`echo ~demisto`**:

      **` sudo mkdir -p`` `` `*****`/home/demisto`***

      **` sudo chown -R demisto:demisto`` `` `*****`/home/demisto`***
2. Test that the XSOAR Registry is properly authenticated.
   * For Docker: **`sudo -u demisto docker pull xsoar-registry.pan.dev/demisto/python3:3.10.4.27798`**
   * For Podman (Red Hat 8.x): **`sudo su -s /bin/bash - demisto -c 'podman pull xsoar-registry.pan.dev/demisto/python3:3.10.4.27798'`**
3. Apply the following configuration to the engine machine by adding to the JSON file:

   ```programlisting
   {
       “python.docker.registry”: “xsoar-registry.pan.dev"
       }
   ```
4. Test a Docker based automation or integration.

If you need to use external Docker images (images not available in the XSOAR Registry and not part of the demisto org) in custom content, specify the full image name with the registry prefix in the automation or integration configuration. For example:

* docker.io/frolvlad/alpine-python2:latest
* registry.access.redhat.com/ubi8/python-38:latest
* myregistryhost:5000/myorg/myimage:version1.0


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsoar-8-on-prem/8.10/configure-cortex-xsoar/engines/install-an-engine/docker/install-docker/use-the-cortex-xsoar-container-registry.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
