Röviden, elkadtam... :/
Kicsit hosszabban, az van hogy szeretnék ~ 30 konténert futtatni dockerben. Hogy legyen valami formája a gyereknek: proxmox host, ezen egy deban 12-es VM. A VM-en rootless modban fut a docker.
Van nekem egy NFS kiszolgálom, mert gondoltam NFS-el osztanam meg a docker hostnak, a volumeokat.
User akinek a nevében fut a docker: docker_user
NFS kiszolgálón létrehoztam szintén ezt a docker_user felhasználót, ügyelve arra, hogy az UID-k megegyezzenek. Doksikból kiderül, hogy NFS-nél nem a felhasználónév számít alap esetben, hanem az azonosítók. Ez pipa.
Adott a megosztás, 755-ös beállításokkal. docker_user olvassa/írja, stb... - többi userem 755 alapján tudja tenni a dolgokat. Boldogság.
De... a konténereket compose-al szeretném felügyelni, nekem ez egyszerű 1 file-ban bent van minden.
Gondoltam létre is hozom az elsőt, ez egy mongo adatbázis.
A compose:
version: '2.24'
services:
# 1. mongo adatbazis graylog-hoz
mongo_db:
container_name: mongo_db
image: mongo:6.0.13-jammy
restart: unless-stopped
volumes:
- type: bind
source: /home/docker_volumes/mongo_db
target: /data/db
bind:
create_host_path: true
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
docker_intra_net:
ipv4_address: 172.28.0.5
networks:
docker_intra_net:
ipam:
driver: default
config:
- subnet: 172.28.0.0/24
gateway: 172.28.0.254
Ahogy compose up-al létrehoznám a konténert, az alábbi hibaüzenet jön: mongo_db | chown: changing ownership of '/data/db': Operation not permitted
És én most nem tudom, hogy mi a csöcs van. Ha local-ban hozom létre, akkor rendben van természetesen. Ebben az esetben a mongo 999-es UID-ra állítja a könyvtárat.
Feltételezésem, hogy ugyan ezt szeretné elkövetni az NFS megosztáson is, de ott ugye ne tudja.
Kérdésem, hogy hogyan lehetne megugrani ezt a problémát?
Most nekem 999-es UID-al létre kellene hoznom, az NFS szerveren is "valakit", sőt minden konténernél ahol chown "change" lenne, ott ugyan ezt meg kellene csinálni.
Az NFS beállításai(tudom, hogy nem elegáns a gyökérből megosztani, de ez most egyelőre ilyen):
/data/docker_volumes 192.168.54.0/24(rw,sync,no_subtree_check)
Dockerben jártas személyeket kérdeznék:
Ott ahol még nem kubernetes van, de szintén NFS-el van megoldva a storage a volume-ok alá, ott hogyan működik? Feltétetelezem, hogy nem a rootless mode a gond, hiszen az NFS kiszolgáló "rootja" és a cliens "rootja" nem egyezik meg.
Vaagy, fordítva kellene indulni, és létre kell hozni az NFS szerveren a mappa struktúrát, majd NFS volume-ként becsatolni compose-al a konténerhez?
Ebben az esetben az a gond, hogy local volume-ként szeretném kezelni az NFS-t, ami eleve nem tud ebben a formában működni, és csak úgy fog menni, ha NFS-ként van mountolva a konténer alá?
Köszi a segítséget előre is!