【问题标题】:DigitalOcean: How to run Docker command on newly created Droplet via Java APIDigitalOcean:如何通过 Java API 在新创建的 Droplet 上运行 Docker 命令
【发布时间】:2016-12-02 04:37:05
【问题描述】:

我正在尝试创建一个新的 Droplet,然后通过 UserData bash 脚本启动 Docker 命令。我在创建 Droplet 时通过 Java API 设置用户数据,并观察我创建的测试文件和日志已创建。

newDroplet.setUserData("#!/bin/bash\n" +
            "touch /test.txt;"+
            "docker login --username=myname--password=mypass > /loginlog;"+
            "docker pull mybuild > /pulllog;"+
            "docker run --log-opt max-size=1g --net host --name myserver -t -i mybuild > /runlog;");

loginlog 和 pulllog 都显示成功的结果。但是文件运行日志中不存在任何内容。

我可以通过 ssh 进入 droplet,然后运行完全相同的 docker 命令,它会按预期运行。为什么它不能从用户数据脚本运行?为什么没有产生输出?

【问题讨论】:

    标签: java docker digital-ocean user-data


    【解决方案1】:

    问题最终是 docker run 命令中的 -t 标志。显然这不起作用,因为它不是终端或类似的东西。删除标志,它运行正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 2022-07-30
      相关资源
      最近更新 更多