【问题标题】:How to configure docker daemon for test enviroment如何为测试环境配置 docker daemon
【发布时间】:2018-04-14 16:36:40
【问题描述】:

我尝试使用 docker 对数据库进行单元测试。我使用库,它在测试期间运行数据库映像。 Docs 说:

Testcontainers 将尝试使用 按顺序执行以下策略:

环境变量:

DOCKER_HOST (this should be set to an
HTTP/HTTPS connection rather than a unix socket at present)

DOCKER_TLS_VERIFY
DOCKER_CERT_PATH

默认值:

DOCKER_HOST=https://localhost:2376
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=~/.docker

如果安装了 Docker Machine,则 Docker Machine 环境为 找到的第一台机器。为此,Docker Machine 需要位于 PATH 上 成功。

我在 Ubuntu 16.04 中安装了 docker,但不了解如何配置 docker 守护程序以与此测试库一起使用。有什么帮助吗?

【问题讨论】:

  • 在标准的 Ubuntu 安装中,您通常不需要专门配置任何内容。你有任何错误吗?测试容器将运行飞行前检查,这应该会给你更多的见解。

标签: docker testcontainers


【解决方案1】:

根据您包含的文档 sn-p:

(这应该设置为 目前是 HTTP/HTTPS 连接而不是 unix 套接字)

听起来这个软件不支持通过 unix 套接字与 Docker 守护进程通信,这是当 DOCKER_HOST 未设置时常规 docker CLI 将尝试连接到 docker 的默认方法。

除了默认的 /var/run/docker.sock unix 套接字之外,您还需要配置本地运行的守护程序以侦听 tcp 套接字。

您可以通过生成 TLS 证书并将它们放置在客户端和服务器上来手动设置。有关此过程的详细信息,请参阅 Docker 官方文档中的 Protect the Docker daemon socket 文章。

【讨论】:

  • Testcontainers 贡献者在这里:您提到的文档 sn-p 已过时,对此感到抱歉。 Testcontainers 现在可以很好地与 UNIX 套接字配合使用,并且通常与默认的 Ubuntu Docker 安装配合使用。
  • @KevinWittek 如果您想提供比我在这里得到的更准确的答案,我很乐意撤回这个基于过时信息的答案。
  • 我已经在原始问题中要求提供更多信息以提供帮助,一旦我知道实际错误是什么,我很乐意提供帮助;)
猜你喜欢
  • 2018-06-05
  • 2015-08-31
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
相关资源
最近更新 更多