> 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/demisto-sdk-development-guide/demisto-sdk-guide/demisto-sdk-usage-and-configuration/using-docker.md).

# Using Docker

Use Docker to run Python scripts and integrations in a controlled environment.

Docker is a tool used by developers to package together dependencies into an image. Docker enables you to run Python scripts and integrations in a controlled environment, isolated from the server. By packaging libraries and dependencies together, a consistent environment is maintained. You are not required to run\
`pip install` to install all the required packages to use your integration. They are part of an image and the image contains all of the libraries you need. See the [Docker site](https://docs.docker.com/) for more information.

## Script/integration configuration

When creating a script within the IDE, you can specify the Docker image to use, within the script settings. If you don't specify a Docker image, a default Docker image using Python 3.9 is used.

The selected Docker image is configured in the script/integration YAML file under the `dockerimage` key. See [Integration metadata YAML file](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/components/integration-metadata-yaml-file.md).

## Updating Docker images automatically via pull request

Every integration/script that utilizes either `demisto/python` or `demisto/python3` Docker images is updated automatically whenever a newer tag is available. This happens via an automatic recurring job that updates the Docker image of the content item by a pull request in the content Git repository.

## Enabling/disabling Docker image automatic update

If your integration/script does not use either `demisto/python` or `demisto/python3` Docker images, you can still update it automatically by adding the `autoUpdateDockerImagekey` to the YAML file. For example, the following will update the integration `MyIntegration` docker image:

```programlisting
commonfields:
  id: MyIntegration
  version: -1
name: MyIntegration
display: MyIntegration
script:
 dockerimage: demisto/oauthlib:1.0.0.16907
autoUpdateDockerImage: true
```

If your integration/script uses either `demisto/python` or `demisto/python3` Docker images and you don't want to automatically update it, you can set the `autoUpdateDockerImage` field to false.

```programlisting
autoUpdateDockerImage: false
```

## Docker images

Palo Alto Networks maintains a large repository of Docker images. All Docker images are available via [DockerHub under the Demisto organization](https://hub.docker.com/u/demisto/). The Docker image creation process is managed via [Dockerfiles repository](https://github.com/demisto/dockerfiles). Before trying to create a new Docker image, check if there is one available already. You can search <https://github.com/demisto/dockerfiles-info/blob/master/used_packages.csv> which is updated nightly with image metadata and the `os/python` packages used in the images. You can also create a custom Docker image to use in your integration.

## Package requirements

Considerations when choosing a package to be used in an integration:

* Does the package have known security issues?
* Is the package licensed? If so, what type of license is being used?

You must perform due diligence on packages you choose to use. This includes verifying the package name is correct. For example, in the past, [scans of PyPI](https://bertusk.medium.com/detecting-cyber-attacks-in-the-python-package-index-pypi-61ab2b585c67) resulted in the detection of 11 "typo-squatted" packages which were found to be malicious.

## Licensing

The content repository is produced with an MIT (Massachusetts Institute of Technology) license, which means that we use only packages that have a license compatible with the MIT license. As a rule, we only use `permissive` licenses. For a complete list of OSS licenses and their types see: <https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses>.


---

# 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/demisto-sdk-development-guide/demisto-sdk-guide/demisto-sdk-usage-and-configuration/using-docker.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.
