V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
einsdisp
V2EX  ›  程序员

Docker 有没有官方的 Hook 机制,容器启动时可触发主机运行脚本?

  •  
  •   einsdisp · Aug 29, 2023 · 3027 views
    This topic created in 976 days ago, the information mentioned may be changed or developed.

    需要针对每一个容器设置 iptables 防火墙规则,在一个 container 启动后,触发主机上(不是容器内部)一个脚本运行,设置针对本容器的 iptables 规则,在 container 关闭后,再次触发主机上一个脚本运行,清理前一个脚本运行所产生的作用。

    类似 systemd 的 ExecStartPost 、ExecStartPre 的机制,libvirt 也有类似机制(/etc/libvirt/hooks/qemu.d )

    但是网上简单搜了下,docker 原生似乎不存在这种机制?这种常见的功能都没有,docker 不会这么弱吗?

    11 replies    2023-08-30 22:54:53 +08:00
    yumusb
        1
    yumusb  
       Aug 29, 2023
    DockerFile ENTRYPOINT 关键字
    einsdisp
        2
    einsdisp  
    OP
       Aug 29, 2023
    @yumusb 那玩意是运行在容器里面的
    ETiV
        3
    ETiV  
       Aug 29, 2023   ❤️ 1
    LeoYoung07
        4
    LeoYoung07  
       Aug 30, 2023
    @ETiV 学习了,看起来可以通过类似这种方式实现:
    https://stackoverflow.com/a/58289989
    ETiV
        5
    ETiV  
       Aug 30, 2023 via iPhone
    对 ,管道给 while read

    saltstack events 也可以这么干
    Jirajine
        6
    Jirajine  
       Aug 30, 2023 via Android
    你可以换 podman
    JohnSwit
        7
    JohnSwit  
       Aug 30, 2023
    为啥一定要用 Docker 的机制?
    直接写一个脚本不就好了
    MuSit
        8
    MuSit  
       Aug 30, 2023 via Android
    上 k8s 用 operator 实现
    MuSit
        9
    MuSit  
       Aug 30, 2023 via Android
    其实主要是要有个控制器能解析 container 生命周期事件 其他都好搞
    williamx
        10
    williamx  
       Aug 30, 2023 via Android
    这个一般我用脚本来控制容器启动,而不是直接用原始命令
    ensonmj
        11
    ensonmj  
       Aug 30, 2023 via iPhone
    runc 的配置里面是有 hook 的,不过好像不是用户可见的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   845 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 19:42 · PVG 03:42 · LAX 12:42 · JFK 15:42
    ♥ Do have faith in what you're doing.