Portál AbcLinuxu, 5. listopadu 2025 16:31
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.