V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Event
V2EX  ›  问与答

docker 容易一运行就挂掉,还怎么编辑容器内的内容? docker run 直接执行容器的命令,立刻就挂掉了

  •  
  •   Event · 2018-05-07 11:32:15 +08:00 · 5428 次点击
    这是一个创建于 2394 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2018-05-07 14:58:45 +08:00
    wkd2234
        1
    wkd2234  
       2018-05-07 12:12:33 +08:00
    试试这样 docker run -d <镜像> tail -f /dev/null,然后 exec 进去编辑或者挂载出来编辑。
    20has
        2
    20has  
       2018-05-07 12:19:15 +08:00 via Android
    docker 监测主进程退出码为零就退出容器
    ctro15547
        3
    ctro15547  
       2018-05-07 12:42:30 +08:00
    容器内加一个循环定时 print 'hello'的脚本试试?
    Event
        4
    Event  
    OP
       2018-05-07 13:08:59 +08:00
    @wkd2234 貌似没用。。。run 跑命令 就算 /bin/bash 都是直接按照 dockerfile 跑的。。然后直接挂掉了
    Event
        5
    Event  
    OP
       2018-05-07 13:09:13 +08:00
    @ctro15547 跑不了进不去咋加
    singer
        6
    singer  
       2018-05-07 13:18:52 +08:00 via iPhone
    还是再去看看 docker 的文档吧。
    Docker 是需要一个进程一直在后台运行着才行。
    一楼说的试试看吧
    whileFalse
        7
    whileFalse  
       2018-05-07 13:35:18 +08:00
    docker 镜像指定了 entrypoint 么?没指定的话用
    docker run 镜像名 ping localhost
    就行了。
    Event
        8
    Event  
    OP
       2018-05-07 13:37:35 +08:00
    @whileFalse 貌似指定了?不管跑啥命令 都是他在跑自己的东西
    whileFalse
        9
    whileFalse  
       2018-05-07 13:45:01 +08:00
    @Event 别貌似,自己看看 Dockerfile。
    用--entrypoint 覆盖一下就行了。
    momocraft
        10
    momocraft  
       2018-05-07 13:46:55 +08:00
    编辑内容是一个 Y 问题。运行就挂是写 Image 阶段就应该解决的事。
    Event
        11
    Event  
    OP
       2018-05-07 13:47:42 +08:00
    @momocraft 直接 pull 下来的。。
    my101du
        12
    my101du  
       2018-05-07 13:55:08 +08:00   ❤️ 1
    一楼正解,docker run 镜像,要有一个容器内的进程在后台保持持续运行(描述错误请专家指正)。一般我要进去编辑内容都用这个命令

    ```bash
    docker run -d hello-world /bin/bash
    ```

    或者使用 `-dit` 参数

    ```bash
    docker run -dit hello-world
    ```
    Event
        13
    Event  
    OP
       2018-05-07 14:12:03 +08:00
    @my101du
    ![QQ 截图 20180507141232.png]( https://i.loli.net/2018/05/07/5aefee250ff75.png)
    没用哦 他还是跑了自己的命令
    ETiV
        14
    ETiV  
       2018-05-07 14:16:27 +08:00
    英语对于开发人员来讲真的是不太高的门槛…

    它让你指定 EULA=TRUE 的环境变量
    Jeremial
        15
    Jeremial  
       2018-05-07 14:16:38 +08:00
    docker run --rm -it hello-world sh
    Jeremial
        16
    Jeremial  
       2018-05-07 14:17:50 +08:00
    -d 和 -it 最好不要同时用. 用了-it, 就在启动命令上加上 sh 或者 bash
    Event
        17
    Event  
    OP
       2018-05-07 14:21:20 +08:00
    @ETiV 我知道。但是我想知道如何来进入容器的控制台
    刚接触 docker
    lzjamao
        18
    lzjamao  
       2018-05-07 14:25:18 +08:00
    命令 docker log 看 log?
    Event
        19
    Event  
    OP
       2018-05-07 14:27:36 +08:00
    @lzjamao 见楼上的图
    Jeremial
        20
    Jeremial  
       2018-05-07 14:41:32 +08:00
    Event
        21
    Event  
    OP
       2018-05-07 14:44:16 +08:00
    @Jeremial 是的
    docker run -it bbriggs/bukkit bash
    依旧跑他自己的东西 不鸟我
    sleshep
        22
    sleshep  
       2018-05-07 14:52:38 +08:00
    docker run --entrypoint=bash -i -t bbriggs/bukkit
    @Event
    问题解决
    Event
        23
    Event  
    OP
       2018-05-07 14:58:45 +08:00
    @sleshep 成功了 谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:13 · PVG 16:13 · LAX 00:13 · JFK 03:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.