【问题标题】:Exec is not supported by the lxc driver: how to get around this?lxc 驱动程序不支持 Exec:如何解决这个问题?
【发布时间】:2015-09-07 08:59:10
【问题描述】:

在 CoreOS 上使用 Docker,我有一个脚本调用:

docker exec ...

这在 CoreOS 上运行良好,但我也想在 CircleCI 上测试它。当我尝试在 CircleCI 上运行该脚本时,我得到:

time="2015-06-22T01:14:51Z" level=fatal msg="Error response from daemon: Unsupported: Exec is not supported by the lxc driver" ./tests/run.sh returned exit code 1

Here are the test results on CircleCI.

我尝试将docker exec 更改为docker --exec-driver native exec,但是我不完全确定“驱动程序”是什么,如何更改它,或者是否可以或需要这样做。

解决此错误的最佳做法是什么?

【问题讨论】:

  • 这仍然是一个问题。如果你绝对需要 exec,你 Travis CI 支持它。

标签: docker lxc circleci


【解决方案1】:

执行驱动程序是 docker 在幕后用来实际运行容器的东西。有两个流行的选项:lxc(以前的默认值),native(当前默认值)

看起来 CircleCI 还不支持 native 执行驱动程序,这就是为什么它缺少 docker 中的一些功能。显然他们已经意识到了这一点并提出了workaround

【讨论】:

  • 是的,但该解决方法不适用于 docker 1.10 及更高版本,因此您不能将 docker-compose 用于版本 2 文件。
【解决方案2】:

我遇到了 docker exec 不工作的类似问题。我尝试了使用 lxc-attach 的解决方法,但这并没有很好地工作。我怀疑我可以花更多的时间让它工作。

最后,我在容器中创建了一个自定义 bash 脚本,其中包含我需要运行的所有命令,并使用了普通的“docker run”命令。

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多