Rancher Desktop - MacOS: erinevus redaktsioonide vahel
| (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 - |
+ | 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 - |
+ | 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 - |
+ | 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| |
+ | [[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 |
+ | 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
- https://rancherdesktop.io/
- https://docs.rancherdesktop.io/getting-started/installation/
- https://github.com/rancher-sandbox/rancher-desktop
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)
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
kus
- sobiv on valida arm arhitektuur
Tavalisel viisil monteerida .dmg
kus
- paigaldamiseks nihutada hiirega rakendus tavalisel viisil -> Applications osakonda
kus
- antud juhul keskendutakse docker workloadile, st Kubernetes valiku võiks välja lülitada
Kokkuvõttes on töötava rancher desktop puhul näha ta
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
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
- vestlus Claude Chat osakonnas
- https://github.com/anthropics/claude-code/blob/main/.devcontainer/Dockerfile
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