Rancher Desktop - MacOS: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
 
(ei näidata sama kasutaja 75 vahepealset redaktsiooni)
14. rida: 14. rida:
 
* MacOS XNU kerneli võimestamiseks kasutatakse automaatselt docker workload käitamisel nö vahel virtuaalset arvutit ja linux kernelit
 
* MacOS XNU kerneli võimestamiseks kasutatakse automaatselt docker workload käitamisel nö vahel virtuaalset arvutit ja linux kernelit
 
* virtuaalset arvutit ja linux kernelit kasutatakse nö loogiliseks teisendamiseks, operatsioonisüsteem linux -> macos, mitte riistvara platvorm x86 -> arm64
 
* virtuaalset arvutit ja linux kernelit kasutatakse nö loogiliseks teisendamiseks, operatsioonisüsteem linux -> macos, mitte riistvara platvorm x86 -> arm64
  +
* virtuaalse arvuti käivitamisel on võimalus valida qemu ja 'Apple Virtualization framework' vahel
   
 
Seda nähtust illustreerib
 
Seda nähtust illustreerib
   
 
<pre>
 
<pre>
imre@imre-mac ~ % docker run -it ubuntu uname -a
+
imre@imre-mac ~ % docker run --rm ubuntu uname -a
 
Linux f727300fb889 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
 
Linux f727300fb889 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
   
imre@imre-mac ~ % docker run -it debian uname -a
+
imre@imre-mac ~ % docker run --rm debian uname -a
 
Linux 779bb27224d4 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
 
Linux 779bb27224d4 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
   
imre@imre-mac ~ % docker run -it fedora uname -a
+
imre@imre-mac ~ % docker run --rm fedora uname -a
 
Linux dae1ddad3271 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
 
Linux dae1ddad3271 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux
 
</pre>
 
</pre>
32. rida: 33. rida:
 
* kõik erinevad linux distributsioonid raporteerivad sama Alpine nimelise kompileerimiskorra arm linux kerneli kasutamist
 
* kõik erinevad linux distributsioonid raporteerivad sama Alpine nimelise kompileerimiskorra arm linux kerneli kasutamist
   
Joonis
+
Joonis (claude.ai tehtud)
   
[[Fail:20260721-rancher-desktop-macos-01.png|1100px]]
+
[[Fail:20260721-rancher-desktop-macos-01.png|900px]]
   
 
kus
 
kus
   
  +
* Rancher desktop kasutamisel käivitatakse taustal üks Apple Virtualization.framework virtuaalne arvuti
* TODO
 
  +
* virtuaalse arvuti sees töötab operatsioonisüsteem Alpine
  +
* virtuaalse arvuti sees töötavad docker konteinerid
  +
* võrgu töötamine on natuke sarnane pssta/pasta lahendusele, st macos host peal töötab limectl protsess ja selle kaudu toimub virtuaalselt arvutist välja pöördumine
  +
* eemalt sisse pöördumine toimub sõna otses mõttes viisil, et ssh abil pöördutakse macos hostist virtuaalsesse arvutisse (limectl protsessi kaudu), tehakse port forward
  +
* võimalik on forwardida tcp protokolli põhist liiklust konteineritele (seda ssh forward seadistamist hallatakse automaatselt kui teha nö tavaline 'docker expose'
   
===Paigaldamine===
+
===Paigaldamine ja käivitamine===
   
 
Tarkvara saab kopeerida nt github keskkonnast
 
Tarkvara saab kopeerida nt github keskkonnast
48. rida: 54. rida:
 
kus
 
kus
   
  +
* sobiv on valida arm arhitektuur
* TODO
 
   
 
Tavalisel viisil monteerida .dmg
 
Tavalisel viisil monteerida .dmg
56. rida: 62. rida:
 
kus
 
kus
   
  +
* paigaldamiseks nihutada hiirega rakendus tavalisel viisil -> Applications osakonda
* TODO
 
   
 
[[Fail:20260717-rancher-desktop-01.png|400px]]
 
[[Fail:20260717-rancher-desktop-01.png|400px]]
62. rida: 68. rida:
 
kus
 
kus
   
  +
* antud juhul keskendutakse docker workloadile, st Kubernetes valiku võiks välja lülitada
* TODO
 
   
 
[[Fail:20260717-rancher-desktop-02.png|800px]]
 
[[Fail:20260717-rancher-desktop-02.png|800px]]
  +
  +
Kokkuvõttes on töötava rancher desktop puhul näha ta
  +
  +
[[Fail:20260722-rancher-desktop-macos-02.png|400px]]
   
 
Failisüsteemis asub
 
Failisüsteemis asub
73. rida: 83. rida:
 
/Users/imreoolberg/Library/Logs/rancher-desktop
 
/Users/imreoolberg/Library/Logs/rancher-desktop
 
</pre>
 
</pre>
  +
  +
Rancher desktop enda protsessideks on nt
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i Rancher
  +
..
  +
imreoolberg 36680 0.0 0.6 1949692784 97648 ?? S 10:50PM 2:00.60 /Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop
  +
</pre>
  +
  +
ning konkreetsele virtuaalsele arvutile (millel töötab linux, mille sees on docker)
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i virtualizat
  +
imreoolberg 36900 1.6 1.6 439638656 266272 ?? Ss 10:50PM 32:55.69 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine
  +
...
  +
</pre>
  +
  +
ning
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % lsof -p 36900 -P -n | grep rancher-desktop
  +
com.apple 36900 imreoolberg txt REG 1,13 131072 124449068 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/vz-efi
  +
com.apple 36900 imreoolberg 3w REG 1,13 7423 124449069 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/serialv.log
  +
com.apple 36900 imreoolberg 4u REG 1,13 107374182400 124448998 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/disk
  +
com.apple 36900 imreoolberg 5r REG 1,13 301281280 124448997 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/iso
  +
com.apple 36900 imreoolberg 6r REG 1,13 19736576 124607540 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/cidata.iso
  +
...
  +
</pre>
  +
  +
kus
  +
  +
* muu hulgas on paista virtuaalse arvutiga seotud plokkseadmetele vastavad failid macos failisüsteemis
   
 
===Kasutamine - docker===
 
===Kasutamine - docker===
   
  +
Paigaldamise tulemusena on kasutada sellised utiliidid
TODO
 
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air ~ % ls -ld .rd/bin/docker*
  +
lrwxr-xr-x@ 1 imreoolberg staff 80 Jul 20 16:56 .rd/bin/docker -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker
  +
lrwxr-xr-x@ 1 imreoolberg staff 102 Jul 20 16:56 .rd/bin/docker-buildx -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-buildx
  +
lrwxr-xr-x@ 1 imreoolberg staff 103 Jul 20 16:56 .rd/bin/docker-compose -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-compose
  +
lrwxr-xr-x@ 1 imreoolberg staff 101 Jul 20 16:56 .rd/bin/docker-credential-ecr-login -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-ecr-login
  +
lrwxr-xr-x@ 1 imreoolberg staff 96 Jul 20 16:56 .rd/bin/docker-credential-none -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-none
  +
lrwxr-xr-x@ 1 imreoolberg staff 103 Jul 20 16:56 .rd/bin/docker-credential-osxkeychain -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-osxkeychain
  +
</pre>
  +
  +
kus
  +
  +
* utiliidid on nii kavalasti realiseeritud, et macos peal käivitades nad tegelikult opereerivad virtuaalse arvuti sees
  +
  +
docker jt utiliidid peavad olema path peal, vaikimisi nad sinna pannakse, kasutamiseks tuleb avada uus nt iterm2 aken
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air ~ % cat .zshrc
  +
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
  +
export PATH="/Users/imreoolberg/.rd/bin:$PATH"
  +
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
  +
</pre>
   
 
macos peal hostis
 
macos peal hostis
   
 
<pre>
 
<pre>
  +
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-01 ubuntu bash
  +
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-02 ubuntu bash
  +
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-03 ubuntu bash
  +
 
# lsof -nP -iTCP -sTCP:LISTEN
 
# lsof -nP -iTCP -sTCP:LISTEN
 
</pre>
 
</pre>
   
ning linux vm docker pidamise arvuti sees
+
ning linux vm docker pidamise arvutisse sisenemiseks sobib öelda
   
 
<pre>
 
<pre>
 
imre@imre-mac ~ % rdctl shell
 
imre@imre-mac ~ % rdctl shell
  +
lima-rancher-desktop:/Users/imre$
  +
</pre>
  +
  +
ning seal sees toimetamiseks nt
  +
  +
<pre>
 
lima-rancher-desktop:/Users/imre$ sudo -i
 
lima-rancher-desktop:/Users/imre$ sudo -i
   
129. rida: 204. rida:
 
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.15
 
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.15
 
192.168.65.0/24 dev vznat proto kernel scope link src 192.168.65.2
 
192.168.65.0/24 dev vznat proto kernel scope link src 192.168.65.2
  +
</pre>
  +
  +
===Claude Code kasutamine konteineris===
  +
  +
Väited
  +
  +
* Claude Code kasutamine nö käsurea rakendusena annab otsekohesema positsiooni nt claude abil arvutitega tegelemiseks üle võrgu
  +
* Claude Code kasutamine konteinerist tekitab selgema piiri töökohaarvuti ja claude tegevuste vahel (nt on väga selgesti kontrollitud mis osadele saab töökohaarvuti failisüsteemile juurde
  +
* antud juhul on tegu klient-rakendus tüüpi konteineriga (mitte server-rakendus tüüpi konteineriga nagu tavaliselt, st konteiner pakub mingi teenust mille poole pöördutakse)
  +
  +
====Ettevalmistused operatsioonisüsteemis====
  +
  +
Ettevalmistused MacOS keskkonnas, tühjad kataloogid
  +
  +
<pre>
  +
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/dc
  +
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/workspace
  +
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/home/node
  +
</pre>
  +
  +
====Tõmmise moodustamine====
  +
  +
Osutub, et ei ole nö usaldusväärset valmis claude-code docker tõmmist, st tuleb Dockerfile abiga ise tekitada
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % cat Dockerfile
  +
FROM node:24-trixie
  +
  +
RUN apt-get update && \
  +
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
  +
less \
  +
git \
  +
procps \
  +
sudo \
  +
fzf \
  +
zsh \
  +
man-db \
  +
unzip \
  +
gnupg2 \
  +
gh \
  +
iptables \
  +
ipset \
  +
iproute2 \
  +
dnsutils \
  +
aggregate \
  +
jq \
  +
nano \
  +
vim \
  +
openssh-client \
  +
ripgrep \
  +
bash \
  +
fd-find \
  +
bat \
  +
tmux \
  +
tree \
  +
htop \
  +
iputils-ping \
  +
traceroute \
  +
net-tools \
  +
lsof \
  +
python3-pip \
  +
python3-venv \
  +
zip \
  +
rsync \
  +
&& apt-get clean && rm -rf /var/lib/apt/lists/*
  +
  +
RUN npm install -g @anthropic-ai/claude-code
  +
WORKDIR /workspace
  +
ENTRYPOINT ["claude"]
  +
</pre>
  +
  +
kus
  +
  +
* alusena kasutatakse ausat node v 24 ja debian v 13 tõmmist (node v 24 on lts kestab kuni 2028)
  +
* paigaldatakse lisa tarkvara, mida on niisama vajadusel hea kasutada või claude protsessil on vaja (nt openssh-client, et logida üle võrgu sisse teisse arvutisse)
  +
* npm abil claude-code kasutamine tegelikult on pigem paketihalduse kui sisuline javascript runtime kasutamine; claude-code on juba kompileeritud-assembleeritud-lingitud jne
  +
* kirjeldatakse entry point väärtuseks claude rakendus ise (node image enda puhul on selleks programm node)
  +
  +
tõmmise moodustamiseks
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % docker build -t claude-code .
  +
</pre>
  +
  +
Tulemusena
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % docker image ls
  +
  +
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
  +
claude-code:latest 0b7fb18a11e4 1.27GB 344MB
  +
...
  +
</pre>
  +
  +
Selline tarkvara koosseis on turvaline kuna kasutusel olev dockerhost kernel on uuemast ajast kui userspace'ile vastav kernel
  +
  +
* linux kernel ja userspace sobivuse lubadus on, et uuem kernel on tagasiühilduv (Linus Torvalds fraas 'never break userspace' - nt mõtlemisega, et uuema kerneliga arvestavas userspace'is võivad olla kasutuses olematud syscallid kui kasutada vastu vanemat kernelit)
  +
* debian v. 13 enda naturaalne kernel on v. 6.12
  +
* dockerhost kernel on v. 6.18
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % rdctl shell uname -a
  +
Linux lima-rancher-desktop 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 Linux
  +
</pre>
  +
  +
====Käivitamine====
  +
  +
Käsurealt käivitamiseks (ajutiseks katseks)
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air 20260721 % docker run -it -v $(pwd):/workspace claude-code
  +
</pre>
  +
  +
docker compose abil käivitamiseks
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml
  +
name: p_claude-code
  +
services:
  +
svc_claude-code:
  +
image: claude-code
  +
container_name: cn_claude-code
  +
init: true
  +
volumes:
  +
- /Users/imreoolberg/cc/volume/workspace:/workspace
  +
- /Users/imreoolberg/cc/volume/root:/root
  +
  +
working_dir: /workspace
  +
stdin_open: true
  +
tty: true
  +
  +
networks:
  +
- nw_claude-code
  +
  +
networks:
  +
nw_claude-code:
  +
name: nw_claude-code
  +
driver: bridge
  +
</pre>
  +
  +
kus
  +
  +
* init: true - oluline kuna konteineri tõmmis ise ei sisalda init-kvaliteediga protsessi (init kvaliteet on vajalik nö descendant protsesside eemaldamiseks vajadusel, nn zombie tõrjeks)
  +
* protsessid võiksid töötada non-root kasutajana konteineri sees, st seda praegu ei ole
  +
* stdin_open ja tty on iseloomulikud nn kliend-rakendus konteinerile
  +
  +
ning käivitamine
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % pwd
  +
/Users/imreoolberg/cc/dc
  +
  +
imreoolberg@Imres-MacBook-Air dc % docker compose run --name cn_claude-code --rm svc_claude-code
  +
</pre>
  +
  +
kus
  +
  +
* docker compose'i ei käivitata nö backgroundis (kunagi ei öelda nö tavalist 'docker compose up -d')
  +
* käivitatakse viidates docker compose faili service elemendile
  +
  +
Tulemusena paistab selline pilt
  +
  +
[[Fail:20260722-rancher-desktop-macos-01.png|900px]]
  +
  +
kus
  +
  +
* ja esitab vastuse mõõdukalt vabas vormis, aga sisuliselt väga korrektse
  +
  +
Vaatlemine
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % docker compose ls
  +
NAME STATUS CONFIG FILES
  +
p_claude-code running(1) /Users/imreoolberg/cc/dc/docker-compose.yml
  +
  +
imreoolberg@Imres-MacBook-Air dc % docker ps
  +
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  +
7731d1366371 claude-code "claude" 14 minutes ago Up 14 minutes cn_claude_code
  +
</pre>
  +
  +
ning
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % docker compose exec svc_claude-code bash
  +
root@7731d1366371:/workspace# ps -ef
  +
UID PID PPID C STIME TTY TIME CMD
  +
root 1 0 0 09:40 pts/0 00:00:00 /sbin/docker-init -- claude
  +
root 7 1 2 09:40 pts/0 00:00:15 claude
  +
root 109 7 0 09:51 ? 00:00:00 /usr/bin/zsh -c source /root/.claude/shell-snapshots/snapshot-zsh-1784713826690-ovcwwb.sh 2>/dev/null || true && setopt NO_EXTENDED_GLOB NO_BARE_GLOB_QUAL 2>/dev/null || true && eval 'ssh -o Batch
  +
root 111 109 0 09:51 ? 00:00:00 ssh -o BatchMode=yes -o ConnectTimeout=10 root@192.168.10.52 ping -c 20 8.8.8.8
  +
root 114 0 0 09:52 pts/2 00:00:00 bash
  +
root 121 114 0 09:52 pts/2 00:00:00 ps -ef
  +
</pre>
  +
  +
kus
  +
  +
* parasjagu paluti arvutist .52 pingida 8.8.8.8
  +
* on näha, et docker enda init on pid 1
  +
* initist tuleb claude protsess
  +
* claude protsessist tulevad shellid
  +
* shellist ssh abil sisselogimine teisse arvutisse
  +
  +
Moniteeritud bind failisüsteemid
  +
  +
<pre>
  +
node@99e63ae3a184:/workspace$ findmnt -t virtiofs
  +
TARGET SOURCE FSTYPE OPTIONS
  +
/workspace lima-f07754c14865dffc[/cc/volume/workspace] virtiofs rw,relatime
  +
/home/node lima-f07754c14865dffc[/cc/volume/home/node] virtiofs rw,relatime
  +
</pre>
  +
  +
====Kasutamine====
  +
  +
TODO
  +
  +
Kasutamisega on seotud sellised asjaolud, tõenäoliselt on asjakohased ssh võtmed, mille abil saab teistesse arvutitesse sisse logida üle ssh
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.ssh/*
  +
-rw------- 1 imreoolberg staff 2602 Jul 22 01:09 volume/root/.ssh/id_rsa
  +
-rw-r--r-- 1 imreoolberg staff 571 Jul 22 01:09 volume/root/.ssh/id_rsa.pub
  +
-rw------- 1 imreoolberg staff 1120 Jul 22 01:23 volume/root/.ssh/known_hosts
  +
-rw-r--r-- 1 imreoolberg staff 142 Jul 22 01:10 volume/root/.ssh/known_hosts.old
  +
</pre>
  +
  +
Claude seadistused, eriti ligipääs oma isanda juurde internetti (credentials)
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.claude volume/root/.claude.json
  +
drwxr-xr-x 15 imreoolberg staff 480 Jul 22 13:00 volume/root/.claude
  +
-rw------- 1 imreoolberg staff 37603 Jul 22 13:00 volume/root/.claude.json
  +
</pre>
  +
  +
Töö lõpetamine
  +
  +
<pre>
  +
Claude rakenduses
  +
> quit
  +
</pre>
  +
  +
Tulemusena eemaldatakse konteiner, aga alles jäävad nn bind-volume'id.
  +
  +
====non-root konteiner====
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml
  +
name: p_claude-code
  +
services:
  +
svc_claude-code:
  +
image: claude-code
  +
container_name: cn_claude-code
  +
init: true
  +
user: node
  +
volumes:
  +
- /Users/imreoolberg/cc/volume/workspace:/workspace
  +
- /Users/imreoolberg/cc/volume/home/node:/home/node
  +
- /run/host-services/ssh-auth.sock:/ssh-agent
  +
  +
environment:
  +
- SSH_AUTH_SOCK=/ssh-agent
  +
  +
working_dir: /workspace
  +
stdin_open: true
  +
tty: true
  +
  +
networks:
  +
- nw_claude-code
  +
  +
networks:
  +
nw_claude-code:
  +
name: nw_claude-code
  +
driver: bridge
  +
</pre>
  +
  +
Tundub, et node tõmmis on ise selline mis ei luba eleveerida
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % rdctl shell
  +
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i
  +
lima-rancher-desktop:~# egrep "node|root" /var/lib/docker/rootfs/overlayfs/98fa407430c5fe80b3c3012dd471e95521e4ea94abc9797bd29aa99dd3a61c2d/etc/shadow
  +
root:*:20647:0:99999:7:::
  +
node:!:20648:0:99999:7:::
  +
</pre>
  +
  +
====Misc====
  +
  +
Konteinerist edasipääsu kontrollimiseks
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % rdctl shell sh -c 'sudo iptables -I DOCKER-USER -d 8.8.8.8 -j DROP'
  +
</pre>
  +
  +
ssh-agent forward ning taaskäivitada Rancher Desktop
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % cat ~/Library/Application\ Support/rancher-desktop/lima/_config/override.yaml
  +
ssh:
  +
forwardAgent: true
  +
</pre>
  +
  +
ning
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % rdctl shell
  +
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i
  +
lima-rancher-desktop:~# apk add acl
  +
  +
lima-rancher-desktop:~# ls -ld /run/host-services/ssh-auth.sock
  +
lrwxrwxrwx 1 imreoolberg root 63 Jul 23 16:57 /run/host-services/ssh-auth.sock -> /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI
  +
  +
lima-rancher-desktop:~# setfacl -m u:1000:rw /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI
  +
</pre>
  +
  +
Kui on tekkinud hulka konteinereid ja korraga kustutada
  +
  +
<pre>
  +
imre@imre-mac ~ % for i in `docker ps -a | awk {'print $1'} | grep -v CONT`; do echo "docker rm $i"; done
  +
</pre>
  +
  +
ja korraga kustutada imaged
  +
  +
<pre>
  +
imre@imre-mac ~ % for i in `docker images | awk {'print $2'} | grep -v ID | grep -v Info` ; do echo "docker rmi $i"; done
  +
</pre>
  +
  +
node tarkvara konteineris
  +
  +
<pre>
  +
imreoolberg@Imres-MacBook-Air dc % docker exec -ti cn_claude-code npm list -g
  +
/usr/local/lib
  +
+-- @anthropic-ai/claude-code@2.1.218
  +
+-- corepack@0.35.0
  +
`-- npm@11.16.0
  +
</pre>
  +
  +
Selleks, et nö 'rdctl shell' virtuaalse arvuti käest ruum kätte saada macos host operatsioonisüsteemi failisüsteemis tuleb peale nt docker image kustutamist öelda
  +
  +
<pre>
  +
lima-rancher-desktop:~# fstrim -av
  +
/mnt/data: 9.3 GiB (9953943552 bytes) trimmed on /dev/vda1
  +
</pre>
  +
  +
====Tarkvara uuendamine====
  +
  +
Uuendamiseks tuleks kusutada senine claude-code tõmmis ja moodustada uuesti.
  +
  +
====Kasulikud lisamaterjalid====
  +
  +
* vestlus Claude Chat osakonnas
  +
* https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile
  +
  +
===Claude Code kasutamine konteineris - litellm===
  +
  +
<pre>
  +
name: p_claude-code-lllm
  +
services:
  +
svc_claude-code-lllm:
  +
image: claude-code
  +
container_name: cn_claude-code-lllm
  +
init: true
  +
user: node
  +
volumes:
  +
- /Users/imreoolberg/cc-lllm/volume/workspace:/workspace
  +
- /Users/imreoolberg/cc-lllm/volume/home/node:/home/node
  +
- /run/host-services/ssh-auth.sock:/ssh-agent
  +
  +
environment:
  +
- SSH_AUTH_SOCK=/ssh-agent
  +
- ANTHROPIC_BASE_URL=https://skm-litellm-01.auul.pri.ee
  +
- ANTHROPIC_API_KEY=${LITELLM_API_KEY}
  +
- ANTHROPIC_MODEL=claude-sonnet-4-6
  +
- DISABLE_UPDATES=1
  +
  +
working_dir: /workspace
  +
stdin_open: true
  +
tty: true
  +
  +
networks:
  +
- nw_claude-code-lllm
  +
  +
networks:
  +
nw_claude-code-lllm:
  +
name: nw_claude-code-lllm
  +
driver: bridge
 
</pre>
 
</pre>
   

Viimane redaktsioon: 3. august 2026, kell 21:18

Sissejuhatus

TODO

Tööpõhimõte

Väited

  • MacOS XNU kernel ise ei oma selliseid nö isolatsiooni võimeid, mida eeldab nn OCI (open container initiative) moodi workload käitamine
  • MacOS XNU kerneli võimestamiseks kasutatakse automaatselt docker workload käitamisel nö vahel virtuaalset arvutit ja linux kernelit
  • virtuaalset arvutit ja linux kernelit kasutatakse nö loogiliseks teisendamiseks, operatsioonisüsteem linux -> macos, mitte riistvara platvorm x86 -> arm64
  • virtuaalse arvuti käivitamisel on võimalus valida qemu ja 'Apple Virtualization framework' vahel

Seda nähtust illustreerib

imre@imre-mac ~ % docker run --rm ubuntu uname -a
Linux f727300fb889 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux

imre@imre-mac ~ % docker run --rm debian uname -a
Linux 779bb27224d4 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux

imre@imre-mac ~ % docker run --rm fedora uname -a
Linux dae1ddad3271 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 GNU/Linux

kus

  • kõik erinevad linux distributsioonid raporteerivad sama Alpine nimelise kompileerimiskorra arm linux kerneli kasutamist

Joonis (claude.ai tehtud)

20260721-rancher-desktop-macos-01.png

kus

  • Rancher desktop kasutamisel käivitatakse taustal üks Apple Virtualization.framework virtuaalne arvuti
  • virtuaalse arvuti sees töötab operatsioonisüsteem Alpine
  • virtuaalse arvuti sees töötavad docker konteinerid
  • võrgu töötamine on natuke sarnane pssta/pasta lahendusele, st macos host peal töötab limectl protsess ja selle kaudu toimub virtuaalselt arvutist välja pöördumine
  • eemalt sisse pöördumine toimub sõna otses mõttes viisil, et ssh abil pöördutakse macos hostist virtuaalsesse arvutisse (limectl protsessi kaudu), tehakse port forward
  • võimalik on forwardida tcp protokolli põhist liiklust konteineritele (seda ssh forward seadistamist hallatakse automaatselt kui teha nö tavaline 'docker expose'

Paigaldamine ja käivitamine

Tarkvara saab kopeerida nt github keskkonnast

20260720-rancher-desktop-macos-01.png

kus

  • sobiv on valida arm arhitektuur

Tavalisel viisil monteerida .dmg

20260720-rancher-desktop-macos-02.png

kus

  • paigaldamiseks nihutada hiirega rakendus tavalisel viisil -> Applications osakonda

20260717-rancher-desktop-01.png

kus

  • antud juhul keskendutakse docker workloadile, st Kubernetes valiku võiks välja lülitada

20260717-rancher-desktop-02.png

Kokkuvõttes on töötava rancher desktop puhul näha ta

20260722-rancher-desktop-macos-02.png

Failisüsteemis asub

/Users/imreoolberg/Library/Application Support/rancher-desktop
/Users/imreoolberg/Library/Preferences/rancher-desktop
/Users/imreoolberg/Library/Logs/rancher-desktop

Rancher desktop enda protsessideks on nt

imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i Rancher
..
imreoolberg      36680   0.0  0.6 1949692784  97648   ??  S    10:50PM   2:00.60 /Applications/Rancher Desktop.app/Contents/MacOS/Rancher Desktop

ning konkreetsele virtuaalsele arvutile (millel töötab linux, mille sees on docker)

imreoolberg@Imres-MacBook-Air dc % ps aux | grep -i virtualizat
imreoolberg      36900   1.6  1.6 439638656 266272   ??  Ss   10:50PM  32:55.69 /System/Library/Frameworks/Virtualization.framework/Versions/A/XPCServices/com.apple.Virtualization.VirtualMachine.xpc/Contents/MacOS/com.apple.Virtualization.VirtualMachine
...

ning

imreoolberg@Imres-MacBook-Air dc % lsof -p 36900 -P -n | grep rancher-desktop
com.apple 36900 imreoolberg  txt     REG               1,13       131072           124449068 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/vz-efi
com.apple 36900 imreoolberg    3w    REG               1,13         7423           124449069 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/serialv.log
com.apple 36900 imreoolberg    4u    REG               1,13 107374182400           124448998 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/disk
com.apple 36900 imreoolberg    5r    REG               1,13    301281280           124448997 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/iso
com.apple 36900 imreoolberg    6r    REG               1,13     19736576           124607540 /Users/imreoolberg/Library/Application Support/rancher-desktop/lima/0/cidata.iso
...

kus

  • muu hulgas on paista virtuaalse arvutiga seotud plokkseadmetele vastavad failid macos failisüsteemis

Kasutamine - docker

Paigaldamise tulemusena on kasutada sellised utiliidid

imreoolberg@Imres-MacBook-Air ~ % ls -ld .rd/bin/docker*
lrwxr-xr-x@ 1 imreoolberg  staff   80 Jul 20 16:56 .rd/bin/docker -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker
lrwxr-xr-x@ 1 imreoolberg  staff  102 Jul 20 16:56 .rd/bin/docker-buildx -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-buildx
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-compose -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/docker-cli-plugins/docker-compose
lrwxr-xr-x@ 1 imreoolberg  staff  101 Jul 20 16:56 .rd/bin/docker-credential-ecr-login -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-ecr-login
lrwxr-xr-x@ 1 imreoolberg  staff   96 Jul 20 16:56 .rd/bin/docker-credential-none -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-none
lrwxr-xr-x@ 1 imreoolberg  staff  103 Jul 20 16:56 .rd/bin/docker-credential-osxkeychain -> /Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/bin/docker-credential-osxkeychain

kus

  • utiliidid on nii kavalasti realiseeritud, et macos peal käivitades nad tegelikult opereerivad virtuaalse arvuti sees

docker jt utiliidid peavad olema path peal, vaikimisi nad sinna pannakse, kasutamiseks tuleb avada uus nt iterm2 aken

imreoolberg@Imres-MacBook-Air ~ % cat .zshrc
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
export PATH="/Users/imreoolberg/.rd/bin:$PATH"
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)

macos peal hostis

imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-01 ubuntu bash
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-02 ubuntu bash
imreoolberg@Imres-MacBook-Air ~ % docker run -ti --rm --name ubuntu-imre-03 ubuntu bash

# lsof -nP -iTCP -sTCP:LISTEN

ning linux vm docker pidamise arvutisse sisenemiseks sobib öelda

imre@imre-mac ~ % rdctl shell
lima-rancher-desktop:/Users/imre$

ning seal sees toimetamiseks nt

lima-rancher-desktop:/Users/imre$ sudo -i

lima-rancher-desktop:~# docker version
Client:
 Version:           29.5.2
 API version:       1.54
 Go version:        go1.25.10
 Git commit:        79eb04c7d8e1d73247cb7fe011eecc645063e0f0
 Built:             Sun May 31 13:53:18 2026
 OS/Arch:           linux/arm64
 Context:           default
...

lima-rancher-desktop:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS          PORTS     NAMES
1be37b403d0d   ubuntu    "bash"    26 minutes ago   Up 26 minutes             ubuntu-imre-03
1662f4905b26   ubuntu    "bash"    26 minutes ago   Up 26 minutes             ubuntu-imre-02
b6dbbc4dae3a   ubuntu    "bash"    27 minutes ago   Up 27 minutes             ubuntu-imre-01

lima-rancher-desktop:~# cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.23.5
PRETTY_NAME="Alpine Linux v3.23"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
BUILD_ID="v0.2.47.rd8"
VARIANT_ID="rd"

lima-rancher-desktop:~# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.d61e94e66512	no		veth9d3c213
							veth627ad00
							vethbc5522e

lima-rancher-desktop:~# ip route
default via 192.168.5.2 dev eth0 metric 202
default via 192.168.65.1 dev vznat metric 203
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.15
192.168.65.0/24 dev vznat proto kernel scope link src 192.168.65.2

Claude Code kasutamine konteineris

Väited

  • Claude Code kasutamine nö käsurea rakendusena annab otsekohesema positsiooni nt claude abil arvutitega tegelemiseks üle võrgu
  • Claude Code kasutamine konteinerist tekitab selgema piiri töökohaarvuti ja claude tegevuste vahel (nt on väga selgesti kontrollitud mis osadele saab töökohaarvuti failisüsteemile juurde
  • antud juhul on tegu klient-rakendus tüüpi konteineriga (mitte server-rakendus tüüpi konteineriga nagu tavaliselt, st konteiner pakub mingi teenust mille poole pöördutakse)

Ettevalmistused operatsioonisüsteemis

Ettevalmistused MacOS keskkonnas, tühjad kataloogid

imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/dc
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/workspace
imre@imre-mac ~ % mkdir -p /Users/imreoolberg/cc/volume/home/node

Tõmmise moodustamine

Osutub, et ei ole nö usaldusväärset valmis claude-code docker tõmmist, st tuleb Dockerfile abiga ise tekitada

imreoolberg@Imres-MacBook-Air dc % cat Dockerfile
FROM node:24-trixie

RUN apt-get update && \
  DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
  less \
  git \
  procps \
  sudo \
  fzf \
  zsh \
  man-db \
  unzip \
  gnupg2 \
  gh \
  iptables \
  ipset \
  iproute2 \
  dnsutils \
  aggregate \
  jq \
  nano \
  vim \
  openssh-client \
  ripgrep \
  bash \
  fd-find \
  bat \
  tmux \
  tree \
  htop \
  iputils-ping \
  traceroute \
  net-tools \
  lsof \
  python3-pip \
  python3-venv \
  zip \
  rsync \
  && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN npm install -g @anthropic-ai/claude-code
WORKDIR /workspace
ENTRYPOINT ["claude"]

kus

  • alusena kasutatakse ausat node v 24 ja debian v 13 tõmmist (node v 24 on lts kestab kuni 2028)
  • paigaldatakse lisa tarkvara, mida on niisama vajadusel hea kasutada või claude protsessil on vaja (nt openssh-client, et logida üle võrgu sisse teisse arvutisse)
  • npm abil claude-code kasutamine tegelikult on pigem paketihalduse kui sisuline javascript runtime kasutamine; claude-code on juba kompileeritud-assembleeritud-lingitud jne
  • kirjeldatakse entry point väärtuseks claude rakendus ise (node image enda puhul on selleks programm node)

tõmmise moodustamiseks

imreoolberg@Imres-MacBook-Air dc % docker build -t claude-code .

Tulemusena

imreoolberg@Imres-MacBook-Air dc % docker image ls

IMAGE                                                      ID             DISK USAGE   CONTENT SIZE   EXTRA
claude-code:latest                                         0b7fb18a11e4       1.27GB          344MB
...

Selline tarkvara koosseis on turvaline kuna kasutusel olev dockerhost kernel on uuemast ajast kui userspace'ile vastav kernel

  • linux kernel ja userspace sobivuse lubadus on, et uuem kernel on tagasiühilduv (Linus Torvalds fraas 'never break userspace' - nt mõtlemisega, et uuema kerneliga arvestavas userspace'is võivad olla kasutuses olematud syscallid kui kasutada vastu vanemat kernelit)
  • debian v. 13 enda naturaalne kernel on v. 6.12
  • dockerhost kernel on v. 6.18
imreoolberg@Imres-MacBook-Air dc % rdctl shell uname -a
Linux lima-rancher-desktop 6.18.36-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-06-20 16:50:52 aarch64 Linux

Käivitamine

Käsurealt käivitamiseks (ajutiseks katseks)

imreoolberg@Imres-MacBook-Air 20260721 % docker run -it -v $(pwd):/workspace claude-code

docker compose abil käivitamiseks

imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml
name: p_claude-code
services:
  svc_claude-code:
    image: claude-code
    container_name: cn_claude-code
    init: true
    volumes:
      - /Users/imreoolberg/cc/volume/workspace:/workspace
      - /Users/imreoolberg/cc/volume/root:/root

    working_dir: /workspace
    stdin_open: true
    tty: true

    networks:
      - nw_claude-code

networks:
  nw_claude-code:
    name: nw_claude-code
    driver: bridge

kus

  • init: true - oluline kuna konteineri tõmmis ise ei sisalda init-kvaliteediga protsessi (init kvaliteet on vajalik nö descendant protsesside eemaldamiseks vajadusel, nn zombie tõrjeks)
  • protsessid võiksid töötada non-root kasutajana konteineri sees, st seda praegu ei ole
  • stdin_open ja tty on iseloomulikud nn kliend-rakendus konteinerile

ning käivitamine

imreoolberg@Imres-MacBook-Air dc % pwd
/Users/imreoolberg/cc/dc

imreoolberg@Imres-MacBook-Air dc % docker compose run --name cn_claude-code --rm svc_claude-code

kus

  • docker compose'i ei käivitata nö backgroundis (kunagi ei öelda nö tavalist 'docker compose up -d')
  • käivitatakse viidates docker compose faili service elemendile

Tulemusena paistab selline pilt

20260722-rancher-desktop-macos-01.png

kus

  • ja esitab vastuse mõõdukalt vabas vormis, aga sisuliselt väga korrektse

Vaatlemine

imreoolberg@Imres-MacBook-Air dc % docker compose ls
NAME                  STATUS              CONFIG FILES
p_claude-code         running(1)          /Users/imreoolberg/cc/dc/docker-compose.yml

imreoolberg@Imres-MacBook-Air dc % docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES
7731d1366371   claude-code         "claude"                 14 minutes ago   Up 14 minutes             cn_claude_code

ning

imreoolberg@Imres-MacBook-Air dc % docker compose exec svc_claude-code bash
root@7731d1366371:/workspace# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 09:40 pts/0    00:00:00 /sbin/docker-init -- claude
root           7       1  2 09:40 pts/0    00:00:15 claude
root         109       7  0 09:51 ?        00:00:00 /usr/bin/zsh -c source /root/.claude/shell-snapshots/snapshot-zsh-1784713826690-ovcwwb.sh 2>/dev/null || true && setopt NO_EXTENDED_GLOB NO_BARE_GLOB_QUAL 2>/dev/null || true && eval 'ssh -o Batch
root         111     109  0 09:51 ?        00:00:00 ssh -o BatchMode=yes -o ConnectTimeout=10 root@192.168.10.52 ping -c 20 8.8.8.8
root         114       0  0 09:52 pts/2    00:00:00 bash
root         121     114  0 09:52 pts/2    00:00:00 ps -ef

kus

  • parasjagu paluti arvutist .52 pingida 8.8.8.8
  • on näha, et docker enda init on pid 1
  • initist tuleb claude protsess
  • claude protsessist tulevad shellid
  • shellist ssh abil sisselogimine teisse arvutisse

Moniteeritud bind failisüsteemid

node@99e63ae3a184:/workspace$ findmnt -t virtiofs
TARGET     SOURCE                                      FSTYPE   OPTIONS
/workspace lima-f07754c14865dffc[/cc/volume/workspace] virtiofs rw,relatime
/home/node lima-f07754c14865dffc[/cc/volume/home/node] virtiofs rw,relatime

Kasutamine

TODO

Kasutamisega on seotud sellised asjaolud, tõenäoliselt on asjakohased ssh võtmed, mille abil saab teistesse arvutitesse sisse logida üle ssh

imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.ssh/*
-rw-------  1 imreoolberg  staff  2602 Jul 22 01:09 volume/root/.ssh/id_rsa
-rw-r--r--  1 imreoolberg  staff   571 Jul 22 01:09 volume/root/.ssh/id_rsa.pub
-rw-------  1 imreoolberg  staff  1120 Jul 22 01:23 volume/root/.ssh/known_hosts
-rw-r--r--  1 imreoolberg  staff   142 Jul 22 01:10 volume/root/.ssh/known_hosts.old

Claude seadistused, eriti ligipääs oma isanda juurde internetti (credentials)

imreoolberg@Imres-MacBook-Air cc % ls -ld volume/root/.claude volume/root/.claude.json
drwxr-xr-x  15 imreoolberg  staff    480 Jul 22 13:00 volume/root/.claude
-rw-------   1 imreoolberg  staff  37603 Jul 22 13:00 volume/root/.claude.json

Töö lõpetamine

Claude rakenduses
> quit

Tulemusena eemaldatakse konteiner, aga alles jäävad nn bind-volume'id.

non-root konteiner

imreoolberg@Imres-MacBook-Air dc % cat docker-compose.yml
name: p_claude-code
services:
  svc_claude-code:
    image: claude-code
    container_name: cn_claude-code
    init: true
    user: node
    volumes:
      - /Users/imreoolberg/cc/volume/workspace:/workspace
      - /Users/imreoolberg/cc/volume/home/node:/home/node
      - /run/host-services/ssh-auth.sock:/ssh-agent

    environment:
      - SSH_AUTH_SOCK=/ssh-agent

    working_dir: /workspace
    stdin_open: true
    tty: true

    networks:
      - nw_claude-code

networks:
  nw_claude-code:
    name: nw_claude-code
    driver: bridge

Tundub, et node tõmmis on ise selline mis ei luba eleveerida

imreoolberg@Imres-MacBook-Air dc % rdctl shell
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i
lima-rancher-desktop:~# egrep "node|root" /var/lib/docker/rootfs/overlayfs/98fa407430c5fe80b3c3012dd471e95521e4ea94abc9797bd29aa99dd3a61c2d/etc/shadow
root:*:20647:0:99999:7:::
node:!:20648:0:99999:7:::

Misc

Konteinerist edasipääsu kontrollimiseks

imreoolberg@Imres-MacBook-Air dc % rdctl shell sh -c 'sudo iptables -I DOCKER-USER -d 8.8.8.8 -j DROP'

ssh-agent forward ning taaskäivitada Rancher Desktop

imreoolberg@Imres-MacBook-Air dc % cat ~/Library/Application\ Support/rancher-desktop/lima/_config/override.yaml
ssh:
  forwardAgent: true

ning

imreoolberg@Imres-MacBook-Air dc % rdctl shell
lima-rancher-desktop:/Users/imreoolberg/cc/dc$ sudo -i
lima-rancher-desktop:~# apk add acl

lima-rancher-desktop:~# ls -ld /run/host-services/ssh-auth.sock
lrwxrwxrwx    1 imreoolberg root            63 Jul 23 16:57 /run/host-services/ssh-auth.sock -> /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI

lima-rancher-desktop:~# setfacl -m u:1000:rw /home/imreoolberg.guest/.ssh/agent/s.cQhHjK447O.sshd.9yxIs9MasI

Kui on tekkinud hulka konteinereid ja korraga kustutada

imre@imre-mac ~ % for i in `docker ps -a | awk {'print $1'} | grep -v CONT`; do echo "docker rm $i"; done

ja korraga kustutada imaged

imre@imre-mac ~ % for i in `docker images | awk {'print $2'} | grep -v ID | grep -v Info` ; do echo "docker rmi $i"; done

node tarkvara konteineris

imreoolberg@Imres-MacBook-Air dc % docker exec -ti cn_claude-code npm list -g
/usr/local/lib
+-- @anthropic-ai/claude-code@2.1.218
+-- corepack@0.35.0
`-- npm@11.16.0

Selleks, et nö 'rdctl shell' virtuaalse arvuti käest ruum kätte saada macos host operatsioonisüsteemi failisüsteemis tuleb peale nt docker image kustutamist öelda

lima-rancher-desktop:~# fstrim -av
/mnt/data: 9.3 GiB (9953943552 bytes) trimmed on /dev/vda1

Tarkvara uuendamine

Uuendamiseks tuleks kusutada senine claude-code tõmmis ja moodustada uuesti.

Kasulikud lisamaterjalid

Claude Code kasutamine konteineris - litellm

name: p_claude-code-lllm
services:
  svc_claude-code-lllm:
    image: claude-code
    container_name: cn_claude-code-lllm
    init: true
    user: node
    volumes:
      - /Users/imreoolberg/cc-lllm/volume/workspace:/workspace
      - /Users/imreoolberg/cc-lllm/volume/home/node:/home/node
      - /run/host-services/ssh-auth.sock:/ssh-agent

    environment:
      - SSH_AUTH_SOCK=/ssh-agent
      - ANTHROPIC_BASE_URL=https://skm-litellm-01.auul.pri.ee
      - ANTHROPIC_API_KEY=${LITELLM_API_KEY}
      - ANTHROPIC_MODEL=claude-sonnet-4-6
      - DISABLE_UPDATES=1

    working_dir: /workspace
    stdin_open: true
    tty: true

    networks:
      - nw_claude-code-lllm

networks:
  nw_claude-code-lllm:
    name: nw_claude-code-lllm
    driver: bridge

Kasulikud lisamaterjalid

  • TODO