V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
herozzm
V2EX  ›  Docker

探讨 docker 容器里增加开机自启命令或者脚本的最佳方式

  •  
  •   herozzm · 2020-09-12 22:19:34 +08:00 · 4511 次点击
    这是一个创建于 1539 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. run 的时候增加命令
    2. ...
    3. ...

    已经 run 的容器又如何增加容器的开机启动脚本? docker container update ?

    10 条回复    2020-09-13 23:15:19 +08:00
    leishi1313
        1
    leishi1313  
       2020-09-12 23:57:51 +08:00 via Android
    不要把容器当虚拟机用
    wellsc
        2
    wellsc  
       2020-09-13 00:00:48 +08:00 via iPhone
    自己写个作业 docker-entrypoint.sh
    mikeguan
        3
    mikeguan  
       2020-09-13 00:24:34 +08:00 via Android   ❤️ 1
    放个 systemd 进去控制开机自起,或者退而求其次用 supervisor ?
    herozzm
        4
    herozzm  
    OP
       2020-09-13 01:03:21 +08:00
    @leishi1313 安装了一个 tensorflow docker 环境,需要在启动一个 python 脚本,导出重新 run 不支持 gpu,头大
    jim9606
        5
    jim9606  
       2020-09-13 06:30:11 +08:00
    你是说开机时自动运行容器吗?
    这个在 docker run 添加 --restart=always 就行了
    locoz
        6
    locoz  
       2020-09-13 07:55:42 +08:00 via Android
    不要把容器当成虚拟机来使用,换个思路做…容器里是没有也不需要开机自启这个概念的。
    如果你是想要在环境里增加东西,就直接用 dockerfile from 旧镜像,然后再添加上你的增加操作步骤,并打包成一个新的镜像。
    ETiV
        7
    ETiV  
       2020-09-13 07:59:29 +08:00 via iPhone
    可以在制作镜像的时候就提前设计好这种能力

    比如新近的 nginx 镜像:
    启动脚本会扫描 /entrypoint.d 下的可执行.sh 文件,有的话便会依照文件名的排序依次执行它们

    已经 run 的,环境允许的话,狸猫换太子?
    把 entrypoint 文件换掉什么的……

    ——
    不过你这情况似乎可以 docker commit
    calmzhu
        8
    calmzhu  
       2020-09-13 09:24:58 +08:00 via Android
    支持楼上,docker 简单说就是单个进程。没什么开机的说法。不要当虚拟机用。
    matrix67
        9
    matrix67  
       2020-09-13 09:28:55 +08:00
    要跑的那个进程 pid 是 1 用 systemd 的话,systemd 会占掉 pid 1 了
    xxb
        10
    xxb  
       2020-09-13 23:15:19 +08:00 via iPhone
    为什么部分楼层要把“自启动”跟虚拟机划等号?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1837 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.