---
title: 'Codex CLI v Dockeru: Windows 11 + WSL2 i čisté Ubuntu v2'
url: 'https://duckd.cz/en/home/codex-cli-docker-wsl2-ubuntu-v2'
markdown: 'https://duckd.cz/en/home/codex-cli-docker-wsl2-ubuntu-v2.md'
lang: en
date: '2026-09-17'
description: 'Codex CLI v Dockeru: Windows 11 + WSL2 i čisté Ubuntu v2 Tento návod pokrývá dvě běžné varianty: Windows 11 + WSL2 (Ubuntu) + Docker Desktop čisté Ubuntu + Docker Engine Cíl je stejný: spouštět Codex CLI v izolovaném kontejneru jen nad aktuálním projektem, s trvalým loginem a bez zbytečných probl…'
taxonomy:
  category:
    - linux
    - windows
    - ai
  tag:
    - wsl2
    - ubuntu
    - docker
    - codex
    - cli
    - sandbox
---

Documentation

# Codex CLI v Dockeru: Windows 11 + WSL2 i čisté Ubuntu v2

 [› Obsah stránky](#content) [› Zpět](https://duckd.cz/en) [› Nahoru](#top) 

# Codex CLI v Dockeru: Windows 11 + WSL2 i čisté Ubuntu v2

Tento návod pokrývá dvě běžné varianty:

- **Windows 11 + WSL2 (Ubuntu) + Docker Desktop**
- **čisté Ubuntu + Docker Engine**

Cíl je stejný: spouštět Codex CLI v izolovaném kontejneru jen nad aktuálním projektem, s trvalým loginem a bez zbytečných problémů.

> Projekty drž v Linuxovém filesystemu, tedy typicky v `~/projects`. Nepracuj přímo z `/mnt/c` ani z NAS mountu.

## Co budeš mít na konci

- funkční Docker bez `sudo`
- image `codexbox:node20-ca`
- Codex spuštěný jen nad aktuálním projektem
- trvalé přihlášení přes mount `~/.codex`
- jednoduchou funkci `codexsafeproxy`

## 1. Připrav projekt

```bash
mkdir -p ~/projects/mojeapp
cd ~/projects/mojeapp
```

`/workspace` v kontejneru není složka na hostu. Je to jen pracovní adresář uvnitř image.

## 2. Zprovozni Docker

### Varianta A: Windows 11 + WSL2

1. Nainstaluj WSL2 a Ubuntu.
2. Nainstaluj Docker Desktop.
3. V Docker Desktop zapni: 
    - `Use the WSL 2 based engine`
    - `WSL Integration` pro tvoje Ubuntu

Ve WSL ověř:

```bash
docker --version
docker ps
```

Pokud ve WSL chybí Docker CLI:

```bash
sudo apt update
sudo apt install -y docker.io
```

Na WSL s Docker Desktop nespouštěj vlastní Docker daemon přes `systemctl`.

### Varianta B: čisté Ubuntu

```bash
sudo apt update
sudo apt install -y docker.io ca-certificates curl
sudo systemctl enable docker
sudo systemctl start docker
docker --version
sudo docker ps
```

Pak přidej uživatele do skupiny `docker`:

```bash
sudo usermod -aG docker $USER
newgrp docker
docker ps
```

Pokud se změna nechytí, odhlas se a přihlas znovu.

## 3. Oprav `docker.sock`, pokud hlásí `permission denied`

Když uvidíš chybu:

```text
permission denied while trying to connect to the Docker daemon socket
```

ověř:

```bash
ls -l /var/run/docker.sock
groups
docker ps
```

Na WSL někdy pomůže úplné vypnutí instance. Tento příkaz spusť ve Windows PowerShellu nebo CMD:

```powershell
wsl --shutdown
```

## 4. Připrav image pro Codex

```bash
mkdir -p ~/codex-docker
cd ~/codex-docker
```

Pokud jsi ve firemní síti a potřebuješ vlastní CA certifikát:

```bash
cp /usr/local/share/ca-certificates/corp-ca.crt ~/codex-docker/
```

Edituj Dockerfile:

```bash
nano ~/codex-docker/Dockerfile
```

```Dockerfile
FROM node:20

USER root
RUN apt-get update && apt-get install -y ca-certificates curl \
  && rm -rf /var/lib/apt/lists/*

COPY corp-ca.crt /usr/local/share/ca-certificates/corp-ca.crt
RUN update-ca-certificates

RUN npm install -g npm@11.11.0
RUN npm install -g @openai/codex@latest

USER node
WORKDIR /workspace
```

Pokud firemní CA nepotřebuješ, vynech řádky `COPY corp-ca.crt ...` a `RUN update-ca-certificates`.

Image sestav:

```bash
docker build --pull --no-cache -t codexbox:node20-ca ~/codex-docker
```

Ověř instalaci Codexu:

```bash
docker run --rm codexbox:node20-ca codex --version
```

## 5. Otestuj síť a TLS z kontejneru

```bash
docker run --rm -it codexbox:node20-ca sh -lc 'curl -I https://chatgpt.com'
```

Podstatné je, aby spojení proběhlo bez TLS chyby. HTTP status není pro tento test důležitý.

## 6. Připrav trvalé přihlášení

```bash
mkdir -p ~/.codex
chmod 700 ~/.codex
sudo chown -R "$USER:$USER" ~/.codex
```

Tento adresář se bude mountovat do kontejneru, takže login přežije restart WSL i Ubuntu.

## 7. Přidej funkci `codexsafeproxy`

Do `~/.bash_aliases` přidej:

```bash

codexupdate() {
  docker build --pull -t codexbox:node20-ca ~/codex-docker
}

csf() {
  local PROJ="$PWD"
  local PROJ_ID
  PROJ_ID="$(printf '%s' "$PROJ" | sha1sum | awk '{print $1}')"

  docker run --rm -it -u node \
    -e HOME=/home/node \
    -v "$HOME/.codex":/home/node/.codex \
    -v "$PROJ":"/workspaces/$PROJ_ID" \
    -w "/workspaces/$PROJ_ID" \
    --cap-drop=ALL --security-opt no-new-privileges \
    codexbox:node20-ca sh -lc '
      codex resume --last || exec codex
    '
}
```

Načti změny:

```bash
source ~/.bash_aliases
```

Použití:

```bash
cd ~/projects/mojeapp
codexsafeproxy
```

Funkce se nejdřív pokusí obnovit poslední relaci. Pokud žádná není, spustí novou.

## 8. Přihlaš se

Při prvním spuštění se přihlas. Pokud zlobí localhost callback, použij:

```bash
codex login --device-auth
```

Ve WSL a Dockeru je to obvykle nejspolehlivější varianta.

## 9. Nejčastější problémy

### `docker: command not found`

Na WSL chybí Docker CLI nebo není zapnutá WSL integrace v Docker Desktop.

### `permission denied ... docker.sock`

Uživatel není ve skupině `docker`, nebo je nutný nový login či `wsl --shutdown`.

### Login nefunguje přes localhost callback

Použij:

```bash
codex login --device-auth
```

### Po restartu chce Codex znovu login

Zkontroluj, že je v `docker run` přítomný tento mount:

```bash
-v "$HOME/.codex":/home/node/.codex
```

### TLS chyba z kontejneru

Obvykle chybí firemní CA v image.

## Shrnutí

Po tomto postupu máš jeden stručný a funkční návod pro WSL2 i čisté Ubuntu, bez nutnosti instalovat Codex přímo na hosta.

© www.duckd.cz

`Grav + Twig` • `atedo-quark` • `2026-09-24`

---

## Navigation

- Parent: [Home](https://duckd.cz/en/index.md)
- Previous: [Codex CLI v Dockeru: Windows 11 + WSL2 i čisté Ubuntu](https://duckd.cz/en/home/codex-cli-docker-wsl2-ubuntu.md)
- Next: [WSL - gemini](https://duckd.cz/en/home/wsl-gemini.md)
