Portál AbcLinuxu, 28. července 2025 06:01
Ahoj, muzete mi prosim vysvetlit, proc kdyz v dockerfilu, viz nize mam vytvoreni slozek, pri spusteni containeru ty slozky nejsou k dispozici.
FROM postgres:9.6 RUN bash -c 'mkdir -pv /var/lib/postgresql/data/{a,b,c}'
Tohle si vybuilduji s tagem postgres:mojeverze Kdyz se podivam do containeru, tak ty slozky tam proste nejsou. Tomu nejak nerozumim. I pri vybuildeni se ukaze, ze slozky tam vytvorene jsou.
Co se stane je to, ze v dalsim layeru se provede exec nad danym imagem a meli by se ty slozky vytvorit, ne? Diky
FROM postgres:9.6 ENTRYPOINT ["docker-entrypoint.sh"] RUN bash -c 'mkdir -pv /var/lib/postgresql/data/{a,b,c}'
postgres
, který má cestu /var/lib/postgresql/data
nastavenou jako volume. Takže vy v tom obrazu vytvoříte složky /var/lib/postgresql/data/{a,b,c}
, a když na jeho základě následně vytvoříte a spustíte kontejner, Docker do /var/lib/postgresql/data/
namapuje volume – takže ty vaše složky zůstanou skryté pod tím mountpointem. Kdybyste uvnitř toho kontejneru volume odmountoval, vaše složky se tam zase objeví.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.