tensorlake/ubuntu-systemd base image, which includes systemd support.
Create the sandbox
- CLI
- Python
- TypeScript
tl sbx new my-docker-sandbox --image tensorlake/ubuntu-systemd --cpus 2.0 --memory 2048
from tensorlake.sandbox import SandboxClient
client = SandboxClient()
sandbox = client.create_and_connect(
name="my-docker-sandbox",
image="tensorlake/ubuntu-systemd",
cpus=2.0,
memory_mb=2048,
)
import { SandboxClient } from "tensorlake";
const client = SandboxClient.forCloud({
apiKey: process.env.TENSORLAKE_API_KEY,
});
const sandbox = await client.createAndConnect({
name: "my-docker-sandbox",
image: "tensorlake/ubuntu-systemd",
cpus: 2.0,
memoryMb: 2048,
});
Install Docker
Install Docker from the official Ubuntu repository:- CLI
- Python
- TypeScript
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
'
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)
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);
Verify
tl sbx exec my-docker-sandbox docker run hello-world