> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensorlake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Docker

> Run Docker containers inside Tensorlake sandboxes using the tensorlake/ubuntu-systemd base image — full systemd support for compose, networking, and daemons.

### Create the sandbox

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    tl sbx create my-docker-sandbox --image tensorlake/ubuntu-systemd --cpus 2.0 --memory 2048
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    from tensorlake.sandbox import Sandbox

    sandbox = Sandbox.create(
        name="my-docker-sandbox",
        image="tensorlake/ubuntu-systemd",
        cpus=2.0,
        memory_mb=2048,
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={null}
    import { Sandbox } from "tensorlake";


    const sandbox = await Sandbox.create({
      name: "my-docker-sandbox",
      image: "tensorlake/ubuntu-systemd",
      cpus: 2.0,
      memoryMb: 2048,
    });
    ```
  </Tab>
</Tabs>

### Install Docker

Install Docker from the [official Ubuntu repository](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository):

<Tabs>
  <Tab title="CLI">
    ```bash theme={null}
    tl sbx exec my-docker-sandbox bash -c '
    set -e
    apt-get update
    apt-get install -y ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc
    . /etc/os-release && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu ${UBUNTU_CODENAME:-$VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    '
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    script = """
    set -e
    apt-get update
    apt-get install -y ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc
    . /etc/os-release && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu ${UBUNTU_CODENAME:-$VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    """

    result = sandbox.run("bash", ["-c", script])
    if result.exit_code != 0:
        raise RuntimeError(result.stderr)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={null}
    const script = [
      "set -e",
      "apt-get update",
      "apt-get install -y ca-certificates curl",
      "install -m 0755 -d /etc/apt/keyrings",
      "curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc",
      "chmod a+r /etc/apt/keyrings/docker.asc",
      '. /etc/os-release && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu ${UBUNTU_CODENAME:-$VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null',
      "apt-get update",
      "apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y",
    ].join("\n");

    const result = await sandbox.run("bash", { args: ["-c", script] });
    if (result.exitCode !== 0) throw new Error(result.stderr);
    ```
  </Tab>
</Tabs>

### Verify

```bash theme={null}
tl sbx exec my-docker-sandbox docker run hello-world
```

### SSH into the sandbox to run Docker commands interactively:

```bash theme={null}
tl sbx ssh my-docker-sandbox

sudo docker run hello-world
```
