docker compose 如何自动创建指定权限的 bind mount? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kyonn
V2EX    Docker

docker compose 如何自动创建指定权限的 bind mount?

  •  
  •   kyonn 316 天前 1504 次点击
    这是一个创建于 316 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面格式的 docker-compose.yml 会在 docker-compose up -d 时自动在当前目录下创建 kkk 目录, 挂载到 container 内部作为 /app/data 使用. 有个问题是部分 docker image 对挂载的 volume 权限有要求, 比如设置 owner 为 www-data, 当然可以手动创建该目录, 并修改权限后执行 docker-compose up -d.

    有没有一种办法能在 docker-compose up -d 执行时自动在主机上创建 kkk 文件夹并修改 kkk 目录权限? Dockerfile 好像是针对容器内部进行的操作?

    包括有些 docker 使用时, 要求先在主机上手动创建数据库空文件, 这些有没有办法都写到 一种 标准的配置文件中. 因为不想直接去修改原始的 docker 镜像.

     xxxx: image: yyyy/zzzz:v7.2.2 container_name: xxxx restart: always volumes: - ./kkk:/app/data 
    6 条回复    2025-01-06 21:52:29 +08:00
    BernieDu
        1
    BernieDu  
       316 天前
    有点没听懂,你是觉得 Bind 对宿主机路径依赖性很强吗。如果是这样可以改为用 volume
    xxxx:
    image: yyyy/zzzz:v7.2.2
    container_name: xxxx
    restart: always
    volumes:
    - source: xxxx_data
    target: /app/data
    type: volume
    volumes:
    xxxx_data: {}
    kyonn
        2
    kyonn  
    OP
       316 天前
    @BernieDu
    不是, 就是要用 bind , 这样方便备份. 问题是 bind mount 的 host 目录, 由 docker 直接创建的默认权限是 root:root 的, 而有些 docker 不是以 root:root 运行的, 不能直接工作, 需要在 docker-compose up -d 前手动创建这个 host 目录, 并且修改这个目录权限.

    问题是能不能把这个目录创建和自动设置主机 kkk 目录权限的事情放在 docker-compose.yml 或者 Dockerfile 之类的标准流程里一起做了. 这样迁移比较方便, 不容易忘了要改权限的事情.
    Spoken6035
        3
    Spoken6035  
       316 天前
    建议写一个 bash 脚本
    kyonn
        4
    kyonn  
    OP
       315 天前
    @Spoken6035 也是个办法.
    heartleo
        5
    heartleo  
       309 天前
    @kyonn docker-compose 可以指定 uid 和 gid 可以研究下
    kyonn
        6
    kyonn  
    OP
       309 天前
    @heartleo 这个指的是在容器中的运行权限, 我想改的是创建目录本身的权限. 因为现成的镜像制作时可能已经要求用某种权限运行了, 改 uid 和 gid 可能要重新处理镜像.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5277 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 08:16 PVG 16:16 LAX 00:16 JFK 03:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86